爛泥:gpg加解密軟體學習

來源:互聯網
上載者:User

標籤:

本文由ilanniweb提供友情贊助,首發於爛泥行天下

想要獲得更多的文章,可以關注我的ilanniweb。

為什麼要學習gpg呢?因為要在Linux下把一個郵箱的密碼加密,不讓其他人看到該郵箱真正的密碼。

為了不讓其他人看到真正的郵箱密碼,我們需要對其進行加密。

加密的方式是先把密碼先寫到一個檔案A中,然後使用相關的加密軟體對該檔案A進行加密產生新的檔案B。此時再刪除檔案A。

其他程式調用郵箱密碼時,只調用加密後的檔案B,同時對檔案B進行解密。

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

一、gpg是什麼

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

GPG使用非對稱式加密演算法,安全程度比較高。所謂非對稱式加密演算法,就是每一個使用者都擁有一對密鑰:公開金鑰和私密金鑰。其中,私密金鑰由使用者儲存,公開金鑰則由使用者儘可能地分發給其他人,以便其他人與使用者進行通訊。

二、安裝gpg

gpg的安裝非常簡單,在此我們以ubuntu 14.04 server為例。如下:

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

centos6預設已經安裝gpg,還需要我們在安裝rng-tools就可以正常使用。如下:

yum -y install rng-tools

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

gpg --help

通過,我們可以看到gpg有很多選項。在此我們就不一一介紹了,下面文章中會介紹幾個比較常用的命令。

三、建立gpg金鑰組

在第一章,我們已經介紹了gpg使用非對稱式加密演算法。非對稱式加密演算法需要一對金鑰組:一個公開金鑰、一個私密金鑰。

現在我們就來建立這對密鑰,使用gpg --gen-key命令。如下:

gpg --gen-key

上面這張圖中,我們一定要選擇第一項,因為只有第一項用於加密,其他幾項都是用於簽名。

上面這張圖中,我們根據實際情況進行選擇密鑰的有效期間限。在此預設使用永久生效,永不到期。

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

這個填寫該密鑰的相關使用者資訊。

中,有兩個地方需要記住。第一就是設定的私密金鑰密碼,第二就是產生密鑰的密鑰ID。

私密金鑰密碼是解密時需要的。密鑰ID是對檔案進行加密需要的。

四、加密檔案

金鑰組建立完畢後,我們現在來使用該金鑰組一個檔案A進行加密。

4.1 建立檔案filea

首先建立檔案filea,內容為ilannipassword。如下:

vi filea

ilannipassword

4.2 加密檔案filea

檔案filea建立完畢後,現在我們來使用gpg加密檔案filea。使用gpg –e命令。如下:

gpg -e -r ilanni filea

這條命令的意思是,使用ilanni這個使用者的金鑰組檔案filea進行加密。

通過,我們可以很明顯的看出gpg已經把檔案filea加密成新的檔案filea.gpg。

現在我們來查看下加密後的檔案filea.gpg,如下:

cat filea.gpg

通過,我們可以很明顯的看出filea.gpg檔案就是一堆亂碼。這樣就達到了加密的效果。

五、解密檔案

檔案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

通過,我們可以很明顯的看到filea.gpg檔案已經被成功解密。

六、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:使用安靜模式

七、gpg的其他使用方法

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

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匯出公開金鑰

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

7.5 gpg匯出私密金鑰

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

7.6 gpg匯入密鑰

匯入私密金鑰和公開金鑰都用下面的命令gpg --import

gpg --import duanzhanling.asc   匯入公開金鑰

gpg --import duanzhanling-sec.asc   匯入私密金鑰

爛泥:gpg加解密軟體學習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.