如何使用公钥加密一个大文件,以便除了拥有私钥的人之外没有人能够解密它?我不想使用 GPG!
答案1
假设您已经在/mypic.png
中有一个私钥/公钥对,这可以用于加密文件。 (您可以在中找到创建密钥对的指南ccbild-key.pem
ccbild-crt.pem
这个答案.)
# encrypt
openssl smime -encrypt -aes-256-cbc -binary -in mypic.png -outform DER -out mypic.png.der ccbild-crt.pem
# decrypt
openssl smime -decrypt -binary -in mypic.png.der -inform DER -out mypic.png -inkey ccbild-key.pem
请注意,这些设置可能无法反映选择加密标准的最佳实践(特别是如果您将来阅读本文),而且从性能角度来看,它可能不是一个好的选择。 (我们仅将其用于应用程序中小于 1M 的文件。)
答案2
既然你想加密一个文件 -您可以使用 GPG 来实现此目的。
另外,不用担心文件的格式 - gpg 可以加密任何文件。
简短说明:
确保
gpg-agent
正在运行:gpg-agent -s --daemon --write-env-file --use-standard-socket
生成您的密钥:
gpg --gen-key
选择默认 ke,除非您知道自己在做什么,或者知道的人告诉您其他情况。如果询问密钥大小,请输入 1024。(大小以位为单位)
当 GPG 会说它将生成您的密钥时,开始随机按下键盘(只需避免发送信号的组合,例如CTRL+Z等。
您已准备好解密文件。默认情况下你使用
gpg -e -r user_id my_file
将 user_id 替换为密钥生成期间提供的电子邮件。指令基于印第安纳大学的文章