c++ - 如何将 'const char *' 转换为 'const unsigned char *'

标签 c++ aes

如何将'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/

相关文章:

c++ - 调用基类的构造函数时对 vtable 的 undefined reference

Java AES 和使用我自己的 key

c++ - 如何使用 C++ 监视文本文件更改?难度 : No . NET

c++ - 如何编写具有仅 move 属性的函数?

c++ - 多维数组的函数

algorithm - C# 和 ColdFusion AES 加密不匹配

Golang (Go) AES CBC 密文由于某种原因被填充了 16 个 0x00 字节

encryption - GoLang 解密一个命令而不是执行它

java加密大文件导致java.lang.OutOfMemoryError : Java heap space,可能的解决方案

c++ - 指向子类的指针