如何使用CA证书公钥加密、私钥解密文件

在日常开发时总是会遇到涉及加解密的场景,通常简单的字符串加解密我们会直接使用AES对称加密(密钥长度>=128bits)来实现,本文主要讲解如何使用CA证书实现对大文件的加解密。

一、使用CA公钥加密、私钥解密文件

1.生成公私钥对证书文件

首先我们需要一套CA证书公私钥对(私钥ca.key自己保管、公钥ca.crt可公开用于加密):

CA_DN='/CN=YAN DevRootCA/O=YanJingang.com/OU=YAN-CA/countryName=CN/stateOrProvinceName=Beijing/subjectAltName=yanjingang.com'
openssl req -x509 -nodes -days 365 -newkey rsa:2048  -keyout ./ca/root/ca.key  -out ./ca/root/ca.crt -subj "${CA_DN}"

2.使用公钥加密文件data.tar.gz

openssl smime -encrypt -aes256  -in  data.tar.gz  -binary  -outform DEM  -out data.encrypt.tar.gz  ./ca/root/ca.crt

3.使用私钥解密文件data.tar.gz

openssl smime -decrypt -inkey ./ca/root/ca.key -in data.encrypt.tar.gz  -binary -inform DEM  -out data.decrypt.tar.gz

证书的私钥一定要保管好,只要没有私钥就无法解密这个文件。

 

二、使用密码文件加解密文件

1.生成密码文件

openssl rand -base64 4096 -out ./ca/key.p

2.使用密码文件加密文件

openssl enc -e -aes-256-cbc -in data.tar.gz -out data.encrypt.keyp.tar.gz -pass file:./ca/key.p

3.使用密码文件解密文件

openssl enc -d -aes-256-cbc -in data.encrypt.keyp.tar.gz -out data.decrypt.keyp.tar.gz -pass file:./ca/key.p

同样,密码文件需要保存好。

 

三、输入密码加密或解密文件

1.输入密码加密

openssl enc -e -aes-256-cbc -in data.tar.gz -out data.encrypt.passwd.tar.gz

2.输入密码解密

openssl enc -d -aes-256-cbc -in data.encrypt.passwd.tar.gz -out data.decrypt.passwd.tar.gz

 

yan 20.11.27

发表评论

电子邮件地址不会被公开。