openssl的几种文件字符加密解密示例


一、通过公钥加密私钥解密

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM