一、通过公钥加密私钥解密
1、生成一个私钥取名为private.pem,私钥长度有1024,2048,4096,我这里写的是8192,随便选
openssl genrsa -out private.pem 8192
2、在这个私钥中提取公钥取名为pub.key
openssl rsa -in private.pem -pubout -out pub.key
3、找一个文件用公钥加密
cp /etc/security/console.perms ./ 把console.perms复制到当前目录
加密这个文件并把加密后的密文存储在console.perms.enc中
openssl rsautl -encrypt -in console.perms -inkey pub.key -pubin -out console.perms.enc
打开他看,全是乱码
³îÁØ4²-3/¯XL?<96><9e><98>Y¾<97><8d>Mû@<89>¸´kZú÷fzðÌ*Î......
4、用私钥解密这个文件
openssl rsautl -decrypt -in console.perms.enc -inkey private.pem -out console.perms.dec
打开看,已经解密了,这个加密的强势在于安全性强度高,私钥位数越高,解密越难,几乎是不可破解的,弱点在于能加密的文件大小有限制,多了就无法加密了,会报错,只能加密小文件。
二、直接密码字符加密解密
这种方式是加密文件的时候提示输入一个密码,解密这个文件的时候也会提示输入你加密的时候输入的密码来进行解密。不足的是密码得你记下来,优势在于可以加密很大的文件,示例如下:
加密:openssl enc -e -aes-256-cbc -in dhcp.txt -out p.key //加密的时候会提示你输入密码
解密:openssl enc -d -aes-256-cbc -in p.key -out dhcp.txt //解密的时候也会提示你输入密码
三、密码文件加密解密
这种方式是先生成指定位数的随机字符作为加密解密的密码,加密解密的时候指定密码文件的位置就行了,安全系数高,有点类似于证书的加密解密方式。
生成密码文件:openssl rand -base64 4096 -out key.p //我生成4096位的密码文件为key.p
开始加密文件:openssl enc -e -aes-256-cbc -in dhcp.txt -out dhcp.enc -pass file:./key.p //调用密码文件key.p加密dhcp.txt,加密后的密文保存为dhcp.enc
开始解密文件:openssl enc -d -aes-256-cbc -in dhcp.enc -out dhcp.log -pass file:./key.p //调研密码文件key.p解密dhcp.enc,解密后的文件保存为dhcp.log
注意:我这里示范加密解密的时候,密码文件key.p就在当前目录,所以我用的./key.p,如果你的密码文件不在这里就要自己指定绝对路径。
四、加盐密码文件加密解密
这个方法和第三种是一样的,只是在加密过程中加了盐而已。都是可以加密大文件的。命令行就不多做解释,参考第三种,只是多了一个-salt而已。
生成密码文件:openssl rand -base64 4096 -out key.p //我生成4096位的密码文件为key.p
开始加密文件:openssl enc -e -aes-256-cbc -salt -in dhcp.txt -out dhcp.log -pass file:./key.p
开始解密文件:openssl enc -d -aes-256-cbc -salt -in dhcp.enc -out dhcp.log -pass file:./key.p
技术交流群QQ:70539804