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