Моя программа C++, реализующая шифрование и дешифрование OpenSSL, имеет несогласованность в заполнении при попытке расшифровать зашифрованный файл.
Функция шифрования показана ниже. Для шифрования используется EVP_aes_256_cbc(), а ключ доступа генерируется из PKCS5_PBKDF2_HMAC с использованием SHA1.
Моя программа C++, реализующая шифрование и дешифрование OpenSSL, имеет несогласованность в заполнении при попытке расшифровать зашифрованный файл. Функция шифрования показана ниже. Для шифрования используется EVP_aes_256_cbc(), а ключ доступа генерируется из PKCS5_PBKDF2_HMAC с использованием SHA1. [code]const int Cipher::cIterations = 1000; const int Cipher::cPassSizeBytes = 48; const int Cipher::cOk = 1;
int Cipher::Encrypt(const string &plainText, const string &passPhrase, string &cipherText) { const int cKeySizeBytes = 32; const int cSaltSizeBytes = 32; const int cIvSizeBytes = 32; try { string key(cKeySizeBytes, 0); string salt(cSaltSizeBytes, 0); string iv(cIvSizeBytes, 0); string password(cPassSizeBytes, 0); string encryptedStr(cipherText.size(), 0); int actual_size = 0; int final_size;