這一篇文章 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 |
執行完指令後,就可以將加密檔 test.encryp.txt ,還原成 test.txt 正常的檔案了。 您也試試吧!!
留言列表