如何使用 RSA 密钥通过 OpenSSL 加密大文件?

如何使用 RSA 密钥通过 OpenSSL 加密大文件?

如何使用公钥加密一个大文件,以便除了拥有私钥的人之外没有人能够解密它?我不想使用 GPG!

答案1

假设您已经在/mypic.png中有一个私钥/公钥对,这可以用于加密文件。 (您可以在中找到创建密钥对的指南ccbild-key.pemccbild-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 可以加密任何文件。

简短说明:

  1. 确保gpg-agent正在运行:

    gpg-agent -s --daemon --write-env-file --use-standard-socket

  2. 生成您的密钥:

    gpg --gen-key

选择默认 ke,除非您知道自己在做什么,或者知道的人告诉您其他情况。如果询问密钥大小,请输入 1024。(大小以位为单位)

  1. 当 GPG 会说它将生成您的密钥时,开始随机按下键盘(只需避免发送信号的组合,例如CTRL+Z等。

  2. 您已准备好解密文件。默认情况下你使用

    gpg -e -r user_id my_file

将 user_id 替换为密钥生成期间提供的电子邮件。指令基于印第安纳大学的文章

相关内容