這一篇文章 GnuPG (GPG) In Win32 免費檔案加解密軟體概念與實作 大致說明了 GnuPG 對於產生一組私鑰 ( Private Key:secring.GPG )& 公鑰( Public Key:pubring.GPG ),與匯出公鑰 polinwei.asc 及匯入客戶公鑰 partnerid.asc 的完整過程。接下來,我們找個檔案,實際來測試看看。會用到的指令有:

加密:C:\gnupg\gpg --encrypt --armor --recipient [public key] --output encryptedfilename unencryptedfilename

解密:C:\gnupg\gpg --always-trust --passphrase-fd 0 --output C:\gnupg\Decrypt\unencryptedfilename  -u "[USER-ID]" --no-tty --decrypt C:\gnupg\Encrypt\encryptedfilename < [passphrase.file]

客戶要給我們的檔案 test.txt

He said, " I'm sorry I doubted you. Now I realize there is greatness even in a small mouse. "
他說: " 很抱歉. 我那時懷疑你, 現在我了解即使是一隻小老鼠也有他偉大之處. "

 

實作:還記得我們匯出公鑰時的資訊吧(如下)

/** 下面是這一組Key的資訊 **/
pub  1024D/FBA68168 2013-06-11 polin.wei <polin.wei@xxx.com>
        Key fingerprint = 925A 54A5 03DA 5CFD ECE5  F01C A5DC 98A3 FBA6 8168
sub  2048g/9E6074F7 2013-06-11 [expires: 2023-06-09] <=用這一組來指定 9E6074F7 匯出公鑰

而我們給客戶的檔案polinwei.asc就有這些資訊,讓客戶先以此金鑰作加密( Sign ),再寄給我們作解密即可。

 

客戶端:

C:\gnupg\gpg --encrypt --armor --recipient 9E6074F7 --output test.encryp.txt test.txt

此時會針對 9E6074F7 的公鑰,產生一個加密檔案 test.encryp.txt,內容會像下面這樣,再將這個檔案 test.encryp.txt 傳給我們即可。

 
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.2.0 (MingW32)

hQIOA0W37H+eYHT3EAgArwioRbUxmP80hO0a5il61ahLPSqJndgGbdXWa9kNE2lq
1jsTpiMPZkeJzw9zo/xE41sBhOdpIggsD1zryul9wUCHOjkiOEGGGyEnxqFUtYHH
6Ie0pfjdAguTT1Ym/rJhGveGNnsBrDnV/CkOrWcELJyRCM6WjSne4WbLPjelvC6w
UiJHjvuzJrCW6Xs6qhziFMoqE7sT7jn7xZPqlrxO22DAWJUQ9ZMJev/A5PPlbtpb
NA1loXRToJ7X7Eazh+oxa30D3Bqta7E6UPg9X4yBJfqfCIJkqjHgzeXFks7Kddd7
t4PPYGYyWbR5F6bW6QHdbwnE2WtNFHNskMM27GaznwgAvX1aRZsB+G+mGjrIBol6
XTQaDhk/hkGStxnd69zTEEhENTvHsFZ2ovsoBNtJLqoZ/k5HsETO4rYSz/KKoZLt
wvTdWHG5aVfU7k96V7NXh13JNOXiOPAWli9G9hnLqY3bZh2lENhaXt7D4fAwxZc0
LXR4mZPy1Vjvskuf2g9E5b+oqfy0LttANAaKWdH/M9Kia/skE3hbEjad/Y//vN3x
BZeOePevn3tLgQmvtapfzZz4682+s/mTDkSAOpgtSCuO3hYB1up+biIqc33dQ8Ui
u4yYaA0xWQsH+Ba2IHmQTkDLIjtFdaa6m8/afMnYR2eqg6nX7MmYjmbTXxZIt2oc
Z9LAKgE37zFFxn4wtvNbRUx8tS7B55CDoKUdl3KivQyfhXF1a9mh7zwqOzTIoIi9
bEdYHKDpEFycjpmgpUj4TPPJyOIU91X9M1cARtK7QLQbinUK0A9l/q3wADPmvCU/
uUJ/LnKoSOxJMkv3sK2Mcnp8w+RUPC6ZrQYrR8SmHo+PJqFddD0L5jtlHtQD877v
96RF32IJE3wfSZGPwXwGhsa2SdXy9d+xYcGzEowvkld0Jb3fRbZu03OmXTAOW6fY
MtjridBEWgXe4wsY2e5y/R4hIUHbLr3J8VUKPa55j3YKpeOBG4E8YMSbZ4GkhA==
=emqr
-----END PGP MESSAGE-----

 

本機端:

C:\gnupg\gpg.exe --always-trust --passphrase-fd 0 --output C:\gnupg\Decrypt\test.txt  -u "polin.wei" --no-tty --decrypt C:\gnupg\Encrypt\test.encryp.txt < passphrase.file

這裡有兩個參數要說明一下:

--passphrase-fd 0 : 是將 secret key (Private key) 的 Passphrase 以檔案 passphrase.file 方式傳入,這樣就不用每次都提示要你輸入了。-u "polin.wei"        : 則是 [USER-ID],這應該是唯一的值。
passphrase.file     : 檔案裡的內容,沒忘了吧,我們在GnuPG (GPG) In Win32 免費檔案加解密軟體概念與實作 輸入的是 polin 。

C:\gnupg>C:\gnupg\gpg.exe --always-trust --passphrase-fd 0 --output C:\gnupg\Decrypt\test.txt  -u "polin.wei" --no-tty --decrypt C:\gnupg\Encrypt\test.encryp.txt < passphrase.file

gpg: encrypted with 2048-bit ELG-E key, ID 9E6074F7, created 2013-06-11
      "polin.wei <polin.wei@xxx.com>"

執行完指令後,就可以將加密檔 test.encryp.txt ,還原成 test.txt 正常的檔案了。 您也試試吧!!

 

 

 

 

文章標籤
創作者介紹
MIS

MISTECH 技術手抄本

MIS 發表在 痞客邦 PIXNET 留言(0) 人氣()