Как преобразовать возвращаемое значение RAND_bytes () в строку в C ++ - PullRequest
0 голосов
/ 30 мая 2018

Мне нужно создать случайный ключ для моего шифрования 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;

и он возвращает меня как: ԌwH�eM��> �

Я не знаю, как хранитьэто возвращаемое значение в моей базе данных. Мне нужно строковое значение.

Также моя ссылочная ссылка http://www.zedwood.com/article/cpp-openssl-aes-gcm-code-sample

1 Ответ

0 голосов
/ 30 мая 2018

Вы не можете просто конвертировать байты в строку напрямую.Вы должны использовать алгоритм преобразования, такой как base64, https://en.wikipedia.org/wiki/Base64.

...