我有一个源文件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)
答案 0 :(得分:0)
我仍然不知道为什么分开的exe无法正确加密和解密。
但是,我找到了出路:
在加密数据之后,您必须首先通过base64对加密的数据进行编码。然后,您可以存储或传输数据。
对于解密,您必须首先使用unbase64解码数据。然后,您可以使用RSA_private_decrypt对其正确解密。
这是实现此解决方案的链接。