gpg加密

?1 概述

工作中,可以用加密的工具對(duì)數(shù)據(jù)進(jìn)行加密,本文介紹了如何用gpg實(shí)現(xiàn)對(duì)稱和非對(duì)稱的加密

2. 對(duì)稱加密

.對(duì)稱加密file文件,選項(xiàng)是-c

gpg ?-c file

這里需要輸入一個(gè)密碼,解密也是用同一密碼進(jìn)行解密

解密文件

gpg ?-o file -d file.gpg

這里的file可以自己指定名稱,-o是生成新文件,-d是解密

注意,雖然可以生成加密文件,但是我的CentOS6出現(xiàn)了如下的三個(gè)報(bào)錯(cuò),第一個(gè)問(wèn)題沒(méi)有解決

[root@localhost ~]#gpg -c aa

#這個(gè)文件沒(méi)有找到不知道從哪里獲取這個(gè)文件

can't connect to `/root/.gnupg/S.gpg-agent': No such file or directory

#以下的這兩報(bào)錯(cuò)如果在6的桌面端打開(kāi)終端,在運(yùn)行生成的命令就不會(huì)報(bào)錯(cuò)

Xlib: ?extension "RANDR" missing on display "localhost:10.0".

Xlib: ?extension "RANDR" missing on display "localhost:10.0".

3. 非對(duì)稱加密

使用gpg工具實(shí)現(xiàn)公鑰加密過(guò)程如下

.在hostB主機(jī)上用公鑰加密,在hostA主機(jī)上解密

a.在hostA主機(jī)上生成公鑰/私鑰對(duì)

b.把A的公鑰導(dǎo)出來(lái)

c.把A的公鑰發(fā)送給需要加密數(shù)據(jù)給A的機(jī)器上,如hostB

d.在hostB主機(jī)上用A公鑰加密文件file,并把加密后的file文件發(fā)給A

e.在hostA主機(jī)上解密file

3.1 hostA生成密鑰

gpg ? --gen-key

這一步只需要在需要?jiǎng)e的主機(jī)生成只有自己能加密文件的機(jī)器上才需要生成鑰匙對(duì)

如果只是用其他主機(jī)的公鑰來(lái)機(jī)密文件,該主機(jī)可以不生成自己的公鑰和私鑰對(duì)

這里最后還會(huì)提示輸入一個(gè)密碼,這個(gè)密碼是用來(lái)加密的私鑰的,當(dāng)要解密文件的時(shí)候,要輸入該密碼,建議是8位數(shù)

最后還是需要敲入大量的字符,讓機(jī)器生成隨機(jī)數(shù)。這里建議不要在終端上操作,否則會(huì)很慢,

直接在物理機(jī)上操作,生成密鑰對(duì)的速度就很快

3.2 查看鑰匙對(duì)

生成鑰匙后,在hostA主機(jī)上查看鑰匙對(duì)

查看公鑰列表

gpg ?--list-keys

查看私鑰列表

gpg --list-secret-key

3.3 導(dǎo)出公鑰

在hostA主機(jī)上導(dǎo)出公鑰,命名為sunny.pubkey

這一步一定是在gpg --gen-key生成后,才會(huì)有公鑰可以導(dǎo)出,否則沒(méi)有執(zhí)行g(shù)pg ?--gen-key的話,就沒(méi)有鑰匙產(chǎn)生

一臺(tái)機(jī)器上可以通過(guò)gpg ?--gen-key生成多把鑰匙,然后用gpg -a 可以把所有的鑰匙都導(dǎo)出來(lái)

gpg ?-a --export -o sunny.pubkey

注意,私鑰也可以導(dǎo)出,但是一般不導(dǎo)出來(lái),自己主機(jī)保留

gpg -a --export-secret-keys -o sunny6a.prikey

3.4 發(fā)送公鑰給需要加密的機(jī)器

從hostA主機(jī)上復(fù)制公鑰文件到需加密的B主機(jī)上

scp ?sunny.pubkey ? hostB

3.5 加密文件

使用gpg工具實(shí)現(xiàn)公鑰加密文件

3.5.1 導(dǎo)入鑰匙

在hostB主機(jī)上導(dǎo)入公鑰

gpg ? --import ?sunny.pubkey

注意 其他主機(jī)(如hostA)私鑰也可以導(dǎo)入,方法和導(dǎo)出公鑰一樣,sunny6a.prikey是私鑰名稱,如下

gpg --import sunny6a.prikey

3.5.2 加密文件

用從hostA主機(jī)導(dǎo)入的公鑰,加密hostB主機(jī)的文件file,生成 ?file.gpg

在B上用A的公鑰進(jìn)行加密文件,這樣加密的文件,只有A才能解密,因?yàn)橹挥蠥有自己的私鑰

注意,以下-r 選項(xiàng)后面的key是不帶后綴的公鑰名稱,即用gpg --list-key查看到的uid

gpg ?-e -r ?sunny ? file

3.5.3 發(fā)送加密后的文件給主機(jī)A

復(fù)制加密文件file.gpg到hostA主機(jī)

scp ? file.gpg ? hostA

3.6 解密文件

在hostA主機(jī)解密文件

gpg ?-d file.gpg

gpg ?-o file -d file.gpg

加了-o選項(xiàng)后,可以將解密后的內(nèi)容重定向到新的文件。解密的時(shí)候,系統(tǒng)會(huì)自動(dòng)識(shí)別用該主機(jī)的哪把私鑰進(jìn)行加密

3.7 刪除鑰匙

3.7.1 僅刪除公鑰

.在B上刪除公鑰和私鑰,刪除別的地方導(dǎo)進(jìn)來(lái)的key,這個(gè)步驟是在別的地方導(dǎo)入的時(shí)候做的,

不能直接刪除自己機(jī)器上的公鑰,自己機(jī)器上的公鑰要?jiǎng)h除,首先要?jiǎng)h除私鑰,才能在刪除公鑰

gpg ?--delete-keys wangxiaochun

3.7.2 刪除公鑰和私鑰

如果沒(méi)有導(dǎo)入私鑰,這里就不會(huì)有私鑰,一般私鑰不給別人,是通過(guò)gpg ?--gen-key產(chǎn)生,才會(huì)有私鑰

要?jiǎng)h除有生成公鑰和私鑰對(duì)的機(jī)器

先刪除私鑰

gpg ? --delete-secret-keys sunny

gpg ?--delete-keys ?sunny

4 總結(jié)

gpg加密的選項(xiàng)很豐富,這里僅僅介紹了最基本的選項(xiàng),如需其他內(nèi)容,請(qǐng)用man gpg進(jìn)行查看

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容