Openssl 如果使用C++生成RSA公钥,则无法加载 < >我使用RSAIGANGATEYKEY方法在C++中创建RSA密钥对,并将公钥写入单独的文件。当我试图通过命令行使用该公钥加密文本时,我无法加载公钥错误。请找个人来帮我

Openssl 如果使用C++生成RSA公钥,则无法加载 < >我使用RSAIGANGATEYKEY方法在C++中创建RSA密钥对,并将公钥写入单独的文件。当我试图通过命令行使用该公钥加密文本时,我无法加载公钥错误。请找个人来帮我,openssl,rsa,Openssl,Rsa,用于加密的命令 openssl rsautl -encrypt -inkey public.pem -in myfile.txt -out file.ssl 用于生成密钥的函数 RSA_generate_key(1024,3,0,0); 谢谢 我使用RSAIGANGATEYKEY方法在C++中创建RSA密钥对,并将公钥写入单独的文件。 RSA_generate_key创建密钥对。您使用什么将密钥写入文件 openssl rsautl-encrypt-inkey public.pem-in-m

用于加密的命令

openssl rsautl -encrypt -inkey public.pem -in myfile.txt -out file.ssl
用于生成密钥的函数

RSA_generate_key(1024,3,0,0);
谢谢

我使用RSAIGANGATEYKEY方法在C++中创建RSA密钥对,并将公钥写入单独的文件。

RSA_generate_key创建密钥对。您使用什么将密钥写入文件

openssl rsautl-encrypt-inkey public.pem-in-myfile.txt-out-file.ssl

我无法加载公钥错误

根据以下网站上的OpenSSL文档:

您需要使用-pubin:

用于生成密钥的函数:RSA_generate_key1024,3,0,0


您应该使用RSA_generate_key_ex。请参阅上的OpenSSL文档。

事实上,我像其他字符数组一样写入文件,所以失败了。现在我使用PEM_write_PUBKEY,它工作正常。请不要介意在这里再问一个问题。。。。现在我有了一个base64编码的字符串加密数据,我使用BIO_f_base64对其进行解码并存储到char arraybuffer上。当我使用该缓冲区进行解密时,RSA_private_decrypt抛出-1。请帮我一下……一定要用PEM_write_PrivateKey保存私钥。否则,您以后将无法解密该消息。我使用PEM_write_PrivateKey函数将私钥存储到pri.key。我使用echo base64encodedstring | base64-decode>>a.txt并使用pri.key使用命令行对其进行解密。它工作得很好。但是使用RSA_private_decrypt函数无法解密。如果你需要,我会发布我的代码。作为单独的问题提问。说明您到目前为止所做的工作。RSA_private_decrypt返回-1-尝试调用ERR_get_error查看失败原因。
-inkey file

    the input key file, by default it should be an RSA private key. 
-pubin

    the input file is an RSA public key.