мой код выглядит следующим образом
unsigned char aes_key[]= "asytfuhcilejnco";
unsigned char input_data[]= "Sandeep";
unsigned char enc_buffer[sizeof(input_data)+1];
unsigned char dec_buffer[sizeof(input_data)+1];
AES_KEY enc_key,dec_key;
unsigned char iv[AES_BLOCK_SIZE];
int main()
{
memset(iv,0x00,AES_BLOCK_SIZE);
AES_set_encrypt_key(aes_key,sizeof(aes_key)*8,&enc_key);
AES_cbc_encrypt(input_data,enc_buffer,sizeof(input_data),&enc_key,iv,AES_ENCRYPT);
enc_buffer[sizeof(input_data)+1]='\0';//b
memset(iv,0x00,AES_BLOCK_SIZE);
AES_set_decrypt_key(aes_key,sizeof(aes_key)*8,&dec_key);
AES_cbc_encrypt(enc_buffer,dec_buffer,sizeof(input_data),&dec_key,iv,AES_DECRYPT);
dec_buffer[sizeof(input_data)+1]='\0';//a
cout<<"input_data="<<input_data<<endl;
cout<<"enc_buffer="<<enc_buffer<<endl;
cout<<"dec_buffer="<<dec_buffer<<endl;
}
Я использую input_data в качестве данных для шифрования.2 буфера enc_buffer и dec_buffer для хранения зашифрованных и дешифрованных данных.Но когда я запускаю следующую программу, буферы не показывают дешифрованные данные, совпадающие с оригинальными входными данными. Если я прокомментирую строки "a" и "b", значения зашифрованных и дешифрованных данных совпадают. Но в этом случае исходные данныепоказано в зашифрованных данных.
вывод программы
input_data=Sandeep
enc_buffer=X��8��Ȏ
dec_buffer=2���yT�
вывод программы с комментариями a и b
input_data=Sandeep
enc_buffer=X��8��Ȏ��Yٔ�iSandeep
dec_buffer=Sandeep