如何将'const char *'转换为'const unsigned char *'
bool AES(const uint8_t *Data, size_t Size) {
std::string s(reinterpret_cast<const char *>(Data), Size);
AES_cbc_encrypt(s.c_str(), enc_out, Size, &enc_key, iv, AES_ENCRYPT);
}
程序编译时出现的错误
candidate function not viable: no known conversion from 'const char *' to 'const unsigned char *'
for 1st argument
void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,
我试过了,不行
std::string s(reinterpret_cast<const unsigned char *>(Data), Size);
最佳答案
uint8_t
, if it's available , 只是 unsigned char
的类型定义。因此,你可以这样做:
bool AES(const uint8_t *Data, size_t Size) {
AES_cbc_encrypt(Data, enc_out, Size, &enc_key, iv, AES_ENCRYPT);
}
请注意,您可能还应该在函数中返回一些内容。
关于c++ - 如何将 'const char *' 转换为 'const unsigned char *',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42303162/