跳转至

security

Safe File Transport

use OpenSSL to encrypt file by RSA key

已有文件

  1. 未加密文件 secretfile.txt
  2. 接受方的公钥 recipients-key.pub

产生一次性加密解密对称密钥secret.key

256 bit (32 byte) random key

openssl rand -out secret.key 32

使用secret.key 加密所需文件

生成加密后文件secretfile.txt.enc

openssl aes-256-cbc -in secretfile.txt -out secretfile.txt.enc -pass file:secret.key

使用公钥recipients-key.pub加密secret.key

得到加密过的一次性key : secret.key.enc

openssl rsautl -encrypt -oaep -pubin -inkey <(ssh-keygen -e -f recipients-key.pub -m PKCS8) -in secret.key -out secret.key.enc
<()是子进程的意思。
 rm secret.key

发送加密文件

加密文件 secretfile.txt.enc和 secret.key.enc

use OpenSSL to descrypt file

已有文件

  1. 加密文件 secretfile.txt.enc和 secret.key.enc
  2. 接受方的私钥

解密secret.key.enc

 openssl rsautl -decrypt -oaep -inkey ~/.ssh/id_rsa -in secret.key.enc -out secret.key

解密secretfile.txt.enc

openssl aes-256-cbc -d -in secretfile.txt.enc -out secretfile.txt -pass file:secret.key

需要进一步的研究学习

  1. 使用 publickey.pem 可以看这篇 https://blog.csdn.net/makenothing/article/details/54645578
  2. id_rsa.pub.pem产生可以看这个 https://www.czeskis.com/random/openssl-encrypt-file.html

遇到的问题

暂无

开题缘由、总结、反思、吐槽~~

参考文献

https://www.bjornjohansen.com/encrypt-file-using-ssh-key

https://blog.csdn.net/makenothing/article/details/54645578