GPG加密解密過程

GPG加密解密過程

1、Linux系統下

1.安裝

yum安裝html

[root@POC-ORACLE ~]# yum install gnupg

下載安裝包安裝linux

https://www.gnupg.org/download/index.en.html

查看gpg幫助redis

[root@POC-ORACLE ~]# gpg --help
gpg (GnuPG) 2.0.14
libgcrypt 1.4.5
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
......

支持的算法:
公鑰:RSA, ELG, DSA
對稱加密:3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128, 
CAMELLIA192, CAMELLIA256
散列:MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
壓縮:不壓縮, ZIP, ZLIB, BZIP2

語法:gpg [選項] [文件名]
簽名、檢查、加密或解密
默認的操做依輸入數據而定

指令:
-s, --sign make a signature
--clearsign make a clear text signature
-b, --detach-sign 生成一份分離的簽名
-e, --encrypt 加密數據
-c, --symmetric 僅使用對稱加密
-d, --decrypt 解密數據(默認)
--verify 驗證簽名
-k, --list-keys 列出密鑰
--list-sigs 列出密鑰和簽名
--check-sigs 列出並檢查密鑰簽名
--fingerprint 列出密鑰和指紋
-K, --list-secret-keys 列出私鑰
--gen-key 生成一副新的密鑰對
--delete-keys 從公鑰鑰匙環裏刪除密鑰
--delete-secret-keys 從私鑰鑰匙環裏刪除密鑰
--sign-key 爲某把密鑰添加簽名
--lsign-key 爲某把密鑰添加本地簽名
--edit-key 編輯某把密鑰或爲其添加簽名
--gen-revoke 生成一份吊銷證書
--export 導出密鑰
--send-keys 把密鑰導出到某個公鑰服務器上
--recv-keys 從公鑰服務器上導入密鑰
--search-keys 在公鑰服務器上搜尋密鑰
--refresh-keys 從公鑰服務器更新全部的本地密鑰
--import 導入/合併密鑰
--card-status 打印卡狀態
--card-edit 更改卡上的數據
--change-pin 更改卡的 PIN
--update-trustdb 更新信任度數據庫
--print-md print message digests
--server run in server mode

選項:
-a, --armor 輸出經 ASCII 封裝
-r, --recipient USER-ID encrypt for USER-ID
-u, --local-user USER-ID use USER-ID to sign or decrypt
-z N set compress level to N (0 disables)
--textmode 使用標準的文本模式
-o, --output FILE write output to FILE
-v, --verbose 詳細模式
-n, --dry-run 不作任何改變
-i, --interactive 覆蓋前先詢問
--openpgp 行爲嚴格遵循 OpenPGP 定義

(請參考在線說明以得到全部命令和選項的完整清單)

範例:
-se -r Bob [文件名] 爲 Bob 這個收件人簽名及加密
--clearsign [文件名] 作出明文簽名
--detach-sign [文件名] 作出分離式簽名
--list-keys [某甲] 顯示密鑰
--fingerprint [某甲] 顯示指紋
顯示幫助安裝成功

2.生成密鑰

[root@POC-ORACLE ~]# gpg --gen-key
gpg (GnuPG) 2.0.14; Copyright (C) 2009 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

請選擇您要使用的密鑰種類:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (僅用於簽名)
(4) RSA (僅用於簽名)
您的選擇? 1
RSA 密鑰長度應在 1024 位與 4096 位之間。
您想要用多大的密鑰尺寸?(2048)2048
您所要求的密鑰尺寸是 2048 位
請設定這把密鑰的有效期限。
0 = 密鑰永不過時
<n> = 密鑰在 n 天后過時
<n>w = 密鑰在 n 周後過時
<n>m = 密鑰在 n 月後過時
<n>y = 密鑰在 n 年後過時
密鑰的有效期限是?(0) 0
密鑰永遠不會過時
以上正確嗎?(y/n)y

You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

真實姓名:lyzkey
電子郵件地址:lyzkey@qq.com
註釋:
您選定了這個用戶標識:
「lyzkey <lyzkey@qq.com>」

更改姓名(N)、註釋(C)、電子郵件地址(E)或肯定(O)/退出(Q)?o
您須要一個密碼來保護您的私鑰。

在這裏插入圖片描述

輸入兩次密碼

can't connect to `/root/.gnupg/S.gpg-agent': 沒有那個文件或目錄
咱們須要生成大量的隨機字節。這個時候您能夠多作些雜事(像是敲打鍵盤、移動
鼠標、讀寫硬盤之類的),這會讓隨機數字發生器有更好的機會得到足夠的熵數。

幾分鐘後完成生成
gpg: 密鑰 10A20444 被標記爲絕對信任
公鑰和私鑰已經生成並經簽名。

gpg: 正在檢查信任度數據庫
gpg: 須要 3 份勉強信任和 1 份徹底信任,PGP 信任模型
gpg: 深度:0 有效性: 1 已簽名: 0 信任度:0-,0q,0n,0m,0f,1u
pub 2048R/10A20444 2018-04-29
密鑰指紋 = 9259 721A 61DA 6C18 3DBA 05CE 9068 BA24 10A2 0444
uid lyzkey <lyzkey@qq.com>
sub 2048R/4B7C31FC 2018-04-29

另外一臺服務器上一樣建立密鑰算法

[root@POC-APP ~]# gpg --list-keys
/root/.gnupg/pubring.gpg
------------------------
pub 2048R/F98FA558 2017-12-07
uid lyzkk <lyzkk@qq.com>
sub 2048R/B3A4A822 2017-12-07

3.導出公鑰

[root@POC-APP ~]# gpg --armor --output lyzkk.asc --export F98FA558
F98FA558 爲pub key的ID

在這裏插入圖片描述

公鑰導出文件 可vi查看數據庫

[root@POC-APP ~]# ll lyzkk.asc
-rw-r--r--. 1 root root 1703 12月 7 18:29 lyzkk.asc

在這裏插入圖片描述

4.導入公鑰

將公鑰發佈,導入另外一臺服務器服務器

[root@POC-ORACLE ~]# gpg --import lyzkk.asc 
gpg: 密鑰 F98FA558:公鑰「lyzkk <lyzkk@qq.com>」已導入
gpg: 合計被處理的數量:1
gpg: 已導入:1 (RSA: 1)

在這裏插入圖片描述

5.文件加密

給文件不加簽,加密ide

[root@POC-ORACLE ~]# gpg --recipient lyzkk --output install.log.asc --encrypt install.log
gpg: B3A4A822:沒有證據代表這把密鑰真的屬於它所聲稱的持有者

pub 2048R/B3A4A822 2017-12-07 lyzkk <lyzkk@qq.com>
主鑰指紋: EE13 B668 8956 7766 EEF7 6DE2 67F5 B833 F98F A558
子鑰指紋: B6DA 032C 47B4 649E 1046 8CE4 FB2C 55EF B3A4 A822

這把密鑰並不必定屬於用戶標識聲稱的那我的。若是您真的知道自
己在作什麼,您能夠在下一個問題回答 yes。

不管如何仍是使用這把密鑰嗎?(y/N)y

在這裏插入圖片描述
上傳到有對應私鑰解密的服務器在這裏插入圖片描述
ui

6.文件解密

[root@POC-APP ~]# gpg --decrypt install.log.asc --output install.log
用法:gpg [選項] --decrypt [文件名]

參數順序不能反this

[root@POC-APP ~]# gpg --output install.log --decrypt install.log.asc
您須要輸入密碼,才能解開這個用戶的私鑰:「lyzkk <lyzkk@qq.com>」
2048 位的 RSA 密鑰,鑰匙號 B3A4A822,創建於 2017-12-07 (主鑰匙號 F98FA558)

can't connect to `/root/.gnupg/S.gpg-agent': 沒有那個文件或目錄
gpg: 由 2048 位的 RSA 密鑰加密,鑰匙號爲 B3A4A82二、生成於 2017-12-07
「lyzkk <lyzkk@qq.com>」

在這裏插入圖片描述

解密後的文件在這裏插入圖片描述加密

7.刪除密鑰

刪除鑰匙前須要先刪除私鑰

[root@POC-ORACLE ~]# gpg --delete-key lyzkey
gpg (GnuPG) 2.0.14; Copyright (C) 2009 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

gpg: 公鑰「lyzkey」有對應的私鑰!
gpg: 請先使用「--delete-secret-keys」選項來刪除它。
[root@POC-ORACLE ~]# gpg --delete-secret-keys lyzkey
gpg (GnuPG) 2.0.14; Copyright (C) 2009 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.


sec 2048R/CCB014D0 2018-04-28 lyzkey <lyzkey@qq.com>

要從鑰匙環裏刪除這把密鑰嗎?(y/N)y
這是一把私鑰!――真的要刪除嗎?(y/N)y
[root@POC-ORACLE ~]# gpg --delete-keys lyzkey
gpg (GnuPG) 2.0.14; Copyright (C) 2009 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.


pub 2048R/CCB014D0 2018-04-28 lyzkey <lyzkey@qq.com>

要從鑰匙環裏刪除這把密鑰嗎?(y/N)y

8.涉及命令

一、生成密鑰對:gpg --gen-key 

爲用戶生成新密鑰對。需提供:密鑰類型(默認爲RSA/RSA);密鑰長度(以位爲單位,越長越強);過時時間(以防密鑰損壞);填:名稱、電子郵箱、標識密鑰全部者的註釋;密碼短語(必須提供,若是私鑰被盜,將沒法使用)。

 

二、列出公鑰:gpg --list-keys 

列出所擁有的公鑰:他們本身的公鑰以及從與之通訊的其餘人那裏導入的任何公鑰。


三、導出公鑰:gpg –export –armor key-id -o file.key 

將公鑰導出至文件,以便於其餘人使用。–armor選項以文本形式顯示輸出,而非二進制格式。key-id是電子郵箱地址或在–list-keys的pub行中列出的八位十六進制數。


四、導入公鑰:gpg –import file.key 

從發送給您的密鑰文件中導入其餘人的公鑰


五、加密文件:gpg –encrypt –armor -r key-id file 

用key-id的公鑰加密消息。若是未提供-r key-id,命令將提示收件人輸入。默認輸出文件爲file.asc. 

六、解密文件:gpg –decrypt file

2、Windows系統下

1.安裝

https://www.gnupg.org/download/index.en.html
在這裏插入圖片描述
安裝對應密鑰管理軟件
在這裏插入圖片描述


2.新建密鑰對

在這裏插入圖片描述
輸入信息
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述





3.導入公鑰

在這裏插入圖片描述
導入完成
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
公鑰導入成功
在這裏插入圖片描述





4.加密文件

點擊加密按鈕,選擇加密文件
在這裏插入圖片描述
選擇爲他人加密
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
加密成功
在這裏插入圖片描述






5.解密文件

用linux端私鑰解密
在這裏插入圖片描述

[root@POC-APP ~]# gpg --output codetemplates.xml --decrypt codetemplates.xml.gpg

解密成功
在這裏插入圖片描述

6.刪除密鑰

右鍵刪除便可

相關文章
相關標籤/搜索