gpg加解密软件学习
想要獲得更多的文章,可以關(guān)注我的微信ilanniweb。
為什么要學(xué)習(xí)gpg呢?因?yàn)橐贚inux下把一個(gè)郵箱的密碼加密,不讓其他人看到該郵箱真正的密碼。
為了不讓其他人看到真正的郵箱密碼,我們需要對其進(jìn)行加密。
加密的方式是先把密碼先寫到一個(gè)文件A中,然后使用相關(guān)的加密軟件對該文件A進(jìn)行加密生成新的文件B。此時(shí)再刪除文件A。
其他程序調(diào)用郵箱密碼時(shí),只調(diào)用加密后的文件B,同時(shí)對文件B進(jìn)行解密。
加密我們使用的是gpg這個(gè)工具,下面我們來介紹下gpgp。
一、gpg是什么
GPG是GNU Privacy Guard或GnuPG的簡稱,它是一種用于加密、數(shù)字簽章及產(chǎn)生非對稱匙對的加密軟件。
GPG使用非對稱加密算法,安全程度比較高。所謂非對稱加密算法,就是每一個(gè)用戶都擁有一對密鑰:公鑰和私鑰。其中,私鑰由用戶保存,公鑰則由用戶盡可能地分發(fā)給其他人,以便其他人與用戶進(jìn)行通信。
二、安裝gpg
gpg的安裝非常簡單,在此我們以ubuntu 14.04 server為例。如下:
sudo apt-get -y install gnupg gnupg-agent rng-tools
centos6默認(rèn)已經(jīng)安裝gpg,還需要我們在安裝rng-tools就可以正常使用。如下:
yum -y install rng-tools
gpg安裝完畢后,我們可以使用gpg –help命令查看gpg的使用方法。如下:
gpg –help
通過上圖,我們可以看到gpg有很多選項(xiàng)。在此我們就不一一介紹了,下面文章中會介紹幾個(gè)比較常用的命令。
三、創(chuàng)建gpg密鑰對
在第一章,我們已經(jīng)介紹了gpg使用非對稱加密算法。非對稱加密算法需要一對密鑰對:一個(gè)公鑰、一個(gè)私鑰。
現(xiàn)在我們就來創(chuàng)建這對密鑰,使用gpg –gen-key命令。如下:
gpg –gen-key
上面這張圖中,我們一定要選擇第一項(xiàng),因?yàn)橹挥械谝豁?xiàng)用于加密,其他幾項(xiàng)都是用于簽名。
上面這張圖中,我們根據(jù)實(shí)際情況進(jìn)行選擇密鑰的有效期限。在此默認(rèn)使用永久生效,永不過期。
上面這張圖中,是配置密鑰的加密長度。默認(rèn)是2048bit,密鑰的長度越長,加密的速度越慢。在此我們使用的是,默認(rèn)配置。
這個(gè)填寫該密鑰的相關(guān)用戶信息。
上圖中,有兩個(gè)地方需要記住。第一就是設(shè)置的私鑰密碼,第二就是生成密鑰的密鑰ID。
私鑰密碼是解密時(shí)需要的。密鑰ID是對文件進(jìn)行加密需要的。
四、加密文件
密鑰對創(chuàng)建完畢后,我們現(xiàn)在來使用該密鑰對一個(gè)文件A進(jìn)行加密。
4.1?創(chuàng)建文件filea
首先創(chuàng)建文件filea,內(nèi)容為ilannipassword。如下:
vi filea
ilannipassword
4.2?加密文件filea
文件filea創(chuàng)建完畢后,現(xiàn)在我們來使用gpg加密文件filea。使用gpg –e命令。如下:
gpg -e -r ilanni filea
這條命令的意思是,使用ilanni這個(gè)用戶的密鑰對文件filea進(jìn)行加密。
通過上圖,我們可以很明顯的看出gpg已經(jīng)把文件filea加密成新的文件filea.gpg。
現(xiàn)在我們來查看下加密后的文件filea.gpg,如下:
cat filea.gpg
通過上圖,我們可以很明顯的看出filea.gpg文件就是一堆亂碼。這樣就達(dá)到了加密的效果。
五、解密文件
文件filea被加密后形成新的文件filea.gpg,如果我們要知道加密前文件filea的內(nèi)容的話,那么就需要我們來解密filea.gpg文件。
要解密gpg加密后的文件,我們需要使用ilanni這個(gè)用戶的公鑰和私鑰。
在此我們是在ilanni這個(gè)用戶密鑰生成的機(jī)器A上進(jìn)行解密的。如果在其他的機(jī)器B上來解密filea.gpg文件,那么就需要在B機(jī)器上把ilanni這個(gè)用戶的私鑰和公鑰都導(dǎo)入進(jìn)來。否則無法完成filea.gpg文件的解密。
解密filea.gpg,只需要使用gpg –d命令就行了。但是考慮到我們程序不需要人工進(jìn)行交互,所以我們使用了如下的命令。
gpg –no-use-agent –passphrase=ilanni -q –no-tty -d filea.gpg
通過上圖,我們可以很明顯的看到filea.gpg文件已經(jīng)被成功解密。
六、gpg參數(shù)介紹
gpg的參數(shù)比較多,下面就稍微介紹下,經(jīng)常使用到的幾個(gè)參數(shù)。
–gen-key:生成一副新的密鑰對
–fingerprint:顯示指紋
–send-keys:把密鑰導(dǎo)出到某個(gè)公鑰服務(wù)器上
–recv-keys:從公鑰服務(wù)器上導(dǎo)入密鑰
-a, –armor:輸出經(jīng)ASCII封裝
-r, –recipient USER-ID:為收件者“某某”加密
-e, –encrypt:加密數(shù)據(jù)
-d, –decrypt:解密數(shù)據(jù)
-o, –output FILE:指定輸出文件
–list-keys:顯示所有公鑰
–list-secret-key:顯示所有私鑰
–delete-keys:刪除公鑰
–delete-secret-keys:刪除私鑰
–delete-secret-and-public-keys:刪除公鑰和私鑰
–import:導(dǎo)入公鑰和私鑰
–no-use-agent:不使用用戶代理
–passphrase:私鑰密碼
–no-tty:在執(zhí)行g(shù)pg時(shí)終端不顯示信息
–quiet:使用安靜模式
七、gpg的其他使用方法
下面列舉下gpg常用參數(shù)的使用案例,如下。
7.1 gpg?查看所有公鑰
gpg –list-key
7.2 gpg?查看所有私鑰
gpg –list-secret-key
7.3 gpg刪除密鑰
gpg –delete-secret-keys 01BA7978 先刪除私鑰
gpg –delete-keys 73391FB6????? 再刪除公鑰
也可以使用一條命令全部刪除,如下:
gpg –delete-secret-and-public-keys BFA7FF09
7.4 gpg導(dǎo)出公鑰
gpg -a -o duanzhanling.asc –export BFA7FF09
7.5 gpg導(dǎo)出私鑰
gpg -a -o duanzhanling-sec.asc –export-secret-key 0B7F4055
7.6 gpg導(dǎo)入密鑰
導(dǎo)入私鑰和公鑰都用下面的命令gpg –import
gpg –import duanzhanling.asc?? 導(dǎo)入公鑰
gpg –import duanzhanling-sec.asc?? 導(dǎo)入私鑰
總結(jié)
以上是生活随笔為你收集整理的gpg加解密软件学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring与MVC面试题
- 下一篇: NLM算法