aes 暗号化でデータを暗号化すると問題が発生しました。これはソースコードです:
std::string aes_encrypt( std::string text, std::string password ){
EVP_CIPHER_CTX ectx;
std::string key = sha256(password);
std::string iv = sha256("aes_iv_"+password);
int size = text.size();
unsigned char* out = (unsigned char*)malloc( size );
int outlen = 0;
int tlen = 0;
EVP_CIPHER_CTX_init( &ectx );
EVP_EncryptInit( &ectx, EVP_aes_256_cbc(), (const unsigned char*)key.c_str(), (const unsigned char*)iv.c_str() );
EVP_EncryptUpdate( &ectx, out, &outlen, (const unsigned char*)text.c_str(), text.size() );
tlen += outlen;
EVP_EncryptFinal( &ectx, out+tlen, &outlen );
tlen += outlen;
EVP_CIPHER_CTX_cleanup( &ectx );
std::string data( (const char*)out, tlen );
free( out );
return data;
}
私のアプリケーションは、次の行でクラッシュします: free(out); この問題を解決する解決策はありますか?