爛泥:gpg加解密軟件學習

爲何要學習gpg呢?由於要在Linux下把一個郵箱的密碼加密,不讓其餘人看到該郵箱真正的密碼。 算法

爲了避免讓其餘人看到真正的郵箱密碼,咱們須要對其進行加密。 ubuntu

加密的方式是先把密碼先寫到一個文件A中,而後使用相關的加密軟件對該文件A進行加密生成新的文件B。此時再刪除文件A。 centos

其餘程序調用郵箱密碼時,只調用加密後的文件B,同時對文件B進行解密。 安全

加密咱們使用的是gpg這個工具,下面咱們來介紹下gpgp。 服務器

1、gpg是什麼 ide

GPG是GNU Privacy Guard或GnuPG的簡稱,它是一種用於加密、數字簽章及產生非對稱匙對的加密軟件。 工具

GPG使用非對稱加密算法,安全程度比較高。所謂非對稱加密算法,就是每個用戶都擁有一對密鑰:公鑰和私鑰。其中,私鑰由用戶保存,公鑰則由用戶儘量地分發給其餘人,以便其餘人與用戶進行通訊。 學習

2、安裝gpg ui

gpg的安裝很是簡單,在此咱們以ubuntu 14.04 server爲例。以下: 加密

sudo apt-get -y install gnupg gnupg-agent rng-tools

clip_p_w_picpath001

centos6默認已經安裝gpg,還須要咱們在安裝rng-tools就能夠正常使用。以下:

yum -y install rng-tools

gpg安裝完畢後,咱們可使用gpg --help命令查看gpg的使用方法。以下:

gpg --help

clip_p_w_picpath002

經過上圖,咱們能夠看到gpg有不少選項。在此咱們就不一一介紹了,下面文章中會介紹幾個比較經常使用的命令。

3、建立gpg密鑰對

在第一章,咱們已經介紹了gpg使用非對稱加密算法。非對稱加密算法須要一對密鑰對:一個公鑰、一個私鑰。

如今咱們就來建立這對密鑰,使用gpg --gen-key命令。以下:

gpg --gen-key

clip_p_w_picpath003

上面這張圖中,咱們必定要選擇第一項,由於只有第一項用於加密,其餘幾項都是用於簽名。

clip_p_w_picpath004

上面這張圖中,咱們根據實際狀況進行選擇密鑰的有效期限。在此默認使用永久生效,永不過時。

clip_p_w_picpath005

上面這張圖中,是配置密鑰的加密長度。默認是2048bit,密鑰的長度越長,加密的速度越慢。在此咱們使用的是,默認配置。

clip_p_w_picpath006

這個填寫該密鑰的相關用戶信息。

clip_p_w_picpath007

上圖中,有兩個地方須要記住。第一就是設置的私鑰密碼,第二就是生成密鑰的密鑰ID。

私鑰密碼是解密時須要的。密鑰ID是對文件進行加密須要的。

4、加密文件

密鑰對建立完畢後,咱們如今來使用該密鑰對一個文件A進行加密。

4.1 建立文件filea

首先建立文件filea,內容爲ilannipassword。以下:

vi filea

ilannipassword

clip_p_w_picpath008

4.2 加密文件filea

文件filea建立完畢後,如今咱們來使用gpg加密文件filea。使用gpg –e命令。以下:

gpg -e -r ilanni filea

這條命令的意思是,使用ilanni這個用戶的密鑰對文件filea進行加密。

clip_p_w_picpath009

經過上圖,咱們能夠很明顯的看出gpg已經把文件filea加密成新的文件filea.gpg。

如今咱們來查看下加密後的文件filea.gpg,以下:

cat filea.gpg

clip_p_w_picpath010

經過上圖,咱們能夠很明顯的看出filea.gpg文件就是一堆亂碼。這樣就達到了加密的效果。

5、解密文件

文件filea被加密後造成新的文件filea.gpg,若是咱們要知道加密前文件filea的內容的話,那麼就須要咱們來解密filea.gpg文件。

要解密gpg加密後的文件,咱們須要使用ilanni這個用戶的公鑰和私鑰。

在此咱們是在ilanni這個用戶密鑰生成的機器A上進行解密的。若是在其餘的機器B上來解密filea.gpg文件,那麼就須要在B機器上把ilanni這個用戶的私鑰和公鑰都導入進來。不然沒法完成filea.gpg文件的解密。

解密filea.gpg,只須要使用gpg –d命令就好了。可是考慮到咱們程序不須要人工進行交互,因此咱們使用了以下的命令。

gpg --no-use-agent --passphrase=ilanni -q --no-tty -d filea.gpg

clip_p_w_picpath011

經過上圖,咱們能夠很明顯的看到filea.gpg文件已經被成功解密。

6、gpg參數介紹

gpg的參數比較多,下面就稍微介紹下,常用到的幾個參數。

--gen-key:生成一副新的密鑰對

--fingerprint:顯示指紋

--send-keys:把密鑰導出到某個公鑰服務器上

--recv-keys:從公鑰服務器上導入密鑰

-a, --armor:輸出經ASCII封裝

-r, --recipient USER-ID:爲收件者「某某」加密

-e, --encrypt:加密數據

-d, --decrypt:解密數據

-o, --output FILE:指定輸出文件

--list-keys:顯示全部公鑰

--list-secret-key:顯示全部私鑰

--delete-keys:刪除公鑰

--delete-secret-keys:刪除私鑰

--delete-secret-and-public-keys:刪除公鑰和私鑰

--import:導入公鑰和私鑰

--no-use-agent:不使用用戶代理

--passphrase:私鑰密碼

--no-tty:在執行gpg時終端不顯示信息

--quiet:使用安靜模式

7、gpg的其餘使用方法

下面列舉下gpg經常使用參數的使用案例,以下。

7.1 gpg 查看全部公鑰

gpg --list-key

clip_p_w_picpath012

7.2 gpg 查看全部私鑰

gpg --list-secret-key

clip_p_w_picpath013

7.3 gpg刪除密鑰

gpg --delete-secret-keys 01BA7978 先刪除私鑰

gpg --delete-keys 73391FB6      再刪除公鑰

clip_p_w_picpath014

也可使用一條命令所有刪除,以下:

gpg --delete-secret-and-public-keys BFA7FF09

clip_p_w_picpath015

7.4 gpg導出公鑰

gpg -a -o duanzhanling.asc --export BFA7FF09

clip_p_w_picpath016

7.5 gpg導出私鑰

gpg -a -o duanzhanling-sec.asc --export-secret-key 0B7F4055

clip_p_w_picpath017

7.6 gpg導入密鑰

導入私鑰和公鑰都用下面的命令gpg --import

gpg --import duanzhanling.asc   導入公鑰

clip_p_w_picpath018

gpg --import duanzhanling-sec.asc   導入私鑰

clip_p_w_picpath019

相關文章
相關標籤/搜索