C++ 如何将RAND_bytes()返回值转换为c++;

C++ 如何将RAND_bytes()返回值转换为c++;,c++,string,aes,C++,String,Aes,我需要为我的Aes加密创建一个随机密钥到我的项目中,并需要将密钥存储在我的SqlLite数据库中,当我需要密钥时,我需要从数据库中获取密钥并转换为相同的类型以使用我的解密 我正在使用以下代码: unsigned char key_bytes[16]; RAND_bytes(key_bytes, sizeof(key_bytes)); string key = string((char *)key_bytes, sizeof(key_bytes)); cout &l

我需要为我的Aes加密创建一个随机密钥到我的项目中,并需要将密钥存储在我的SqlLite数据库中,当我需要密钥时,我需要从数据库中获取密钥并转换为相同的类型以使用我的解密

我正在使用以下代码:

    unsigned char key_bytes[16];
    RAND_bytes(key_bytes, sizeof(key_bytes));
    string key = string((char *)key_bytes, sizeof(key_bytes));
    cout << key << endl;
unsigned char key_字节[16];
RAND_字节(key_字节,sizeof(key_字节));
string key=string((char*)key_字节,sizeof(key_字节));

cout您不能直接将字节转换为字符串。
您应该使用base64之类的转换算法。

正如您所看到的,它不是字符串,只是随机字节。您可以将其存储为BLOB类型。我正在google中搜索“将c++中的字节转换为字符串”,但它返回的方法类似于
string((char*)key_bytes,sizeof(key_bytes))。因此它返回相同的字符串值。