You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于OpenSSL的EVP_DecryptFinal_ex函数len归零及崩溃问题咨询

OpenSSL EVP_DecryptFinal_ex 解密问题求助

我在使用OpenSSL库进行加解密操作时,调用EVP_DecryptFinal_ex函数前后打印len变量的值,发现函数调用后len变为0。相关代码如下:

其中dctx是EVP_CIPHER_CTX类型指针,plaintext是unsigned char类型指针,len为解密文本的长度。

if (!EVP_DecryptFinal_ex(dctx, plaintext+len , &len)) {
    unsigned long err = ERR_get_error();
    char *error_string = ERR_error_string(err?err:EVP_R_BAD_DECRYPT, NULL);
    *errMsg= " Data is Tempered or currupted: " ;
    cout<<"comes here:6 "<<error_string <<"Bad Decryption: data tempered or currupted"<<endl;
    EVP_CIPHER_CTX_free(dctx);
    delete[] plaintext;
    return "";
  }else{
    cout<<"clear till 7: "<<endl;
    cout<<" length value in CP9 final  = "<< len<<endl;
  }

奇怪的是,固定长度的内容可以正常解密,但当长度变化时,程序会触发如下访问违例错误:

First chance exception at $009F06ED. Exception class $C0000005 with message 'access violation at 0x009f06ed: write of address 0x015d30a4'. Process TestDllProj.exe (892)

我已检查所有创建的指针,并释放了已分配的内存。请问上述代码块是否存在问题?恳请@RemyLebeau及各位提供解决方案。

内容的提问来源于stack exchange,提问作者yash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 23:22:19