RSA_private_decrypt返回-1

时间:2018-10-09 10:59:14

标签: openssl rsa

我有一个源文件demo.cpp,可以使用openssl RSA加密和解密数据。我可以成功加密和解密数据。

但是,如果我创建2个文件en.cpp和de.cpp并分别构建它们。然后,如果我使用可执行文件en加密数据并使用de解密日期。

然后RSA_private_decrypt将返回-1。

这是我的加密和解密代码。

 RSA_public_encrypt(strData.length(), (const unsigned char*)strData.c_str(), (unsigned char*)pEncode, pRSAPublicKey, RSA_PKCS1_PADDING);

RSA_private_decrypt(strData.length(), (const unsigned char*)strData.c_str(), (unsigned char*)pDecode, pRSAPriKey, RSA_PKCS1_PADDING)

1 个答案:

答案 0 :(得分:0)

我仍然不知道为什么分开的exe无法正确加密和解​​密。

但是,我找到了出路:

在加密数据之后,您必须首先通过base64对加密的数据进行编码。然后,您可以存储或传输数据。

对于解密,您必须首先使用unbase64解码数据。然后,您可以使用RSA_private_decrypt对其正确解密。

这是实现此解决方案的链接。

https://gist.github.com/superwills/5415344