0

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); この問題を解決する解決策はありますか?

4

1 に答える 1