Как я преобразовываю из stringstream для строкового представления в C++?

На самом деле ошибка говорит о invalid ciphertext size (must be 16 bytes), поэтому проблема не в вашем key, а изменение длины key, как вы сказали в своем посте, не решит проблему, поскольку это не касается ключ.

Это распространенная и известная проблема , которая касается длины открытого текста в CBC и возникает при использовании зашифрованного текста с длиной, отличной от 16 байтов.

Чтобы решить эту проблему, вам нужно добавить заполнение для вашего зашифрованного текста, подробности можно прочитать в Почему все входы в AES должны быть кратны 16? [ 1112].

114
задан msc 13 October 2017 в 16:58
поделиться

3 ответа

†‹вЂ‹ †‹вЂ‹ †‹вЂ "вЂ"

yourStringStream.str()
183
ответ дан Ayxan 24 November 2019 в 02:31
поделиться

Используйте .str () - метод :

Управляет содержанием базового строкового объекта.

1) Возвраты копия базовой строки, как будто путем вызова rdbuf()->str().

2) Замены содержание базовой строки, как будто путем вызова rdbuf()->str(new_str)...

Примечания

копия базовой строки, возвращенной ул., является временным объектом, который будет разрушен в конце выражения, так непосредственно вызов c_str() на результате str() (например, в auto *ptr = out.str().c_str();) результаты в висячем указателе...

74
ответ дан gnat 24 November 2019 в 02:31
поделиться

Из памяти Вы звоните stringstream::str() для вывода эти std::string значение.

10
ответ дан Ayxan 24 November 2019 в 02:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: