如何使用公共密钥加密大文件,以使只有拥有私有密钥的人才能解密该文件?
我可以使RSA公共和私有密钥生效,但是在使用以下命令加密大型文件时:
openssl rsautl -encrypt -pubin -inkey public.pem -in myLargeFile.xml -out myLargeFile_encrypted.xml
以及如何执行解密…
我通过以下命令创建我的私钥和公钥
openssl genrsa -out private.pem 1024 openssl rsa -in private.pem -out public.pem -outform PEM -pubout
我收到此错误:
RSA operation error 3020:error:0406D06E:rsa routines:RSA_padding_add_PKCS1_type_2:data too large for key size:.\crypto\rsa\rsa_pk1.c:151:
我尝试制作大小从1024到1200位的键,没有运气,同样的错误
公钥加密不适用于对任意长文件进行加密。人们使用对称密码(例如AES)进行常规加密。每次生成,使用并使用RSA密码(公钥)加密新的随机对称密钥。密文与加密的对称密钥一起传输到接收者。接收者使用其私钥解密对称密钥,然后使用对称密钥解密消息。
私有密钥从不共享,只有公共密钥用于加密随机对称密码。
安全和高度安全的解决方案,可以在OpenSSL和命令行中对任何文件进行编码:
您应该已经准备好一些X.509证书来加密PEM格式的文件。
加密文件:
openssl smime -encrypt -binary -aes-256-cbc -in plainfile.zip -out encrypted.zip.enc -outform DER yourSslCertificate.pem
什么是什么:
解密文件:
openssl smime -decrypt -binary -in encrypted.zip.enc -inform DER -out decrypted.zip -inkey private.key -passin pass:your_password
-inform DER-与上面的-outform相同 -inkey private.key-私钥的文件名。该密码应为PEM格式,并可以使用密码进行加密。 -passin pass:your_password-您的私钥加密密码。(密码短语参数)