在Ubuntu上使用GnuPG進行PGP簽章加解密
安裝套件
sudo apt-get install gnupg產生簽章用key
gpg --gen-key會需要填寫一些包含個人名稱, E-mail和輸入維護用的密碼
產生出的public key會存在家目錄~/.gnupg/pubring.gpg
產生出的private key會存在家目錄~/.gnupg/secring.gpg
如果需要修改已經產生的key,可以參考這篇
列出本機上的public/private key
gpg --list-keys預設public key目錄~/.gnupg/pubring.gpg
gpg --list-secret-keys
預設private key目錄~/.gnupg/secring.gpg
匯入public/private key
gpg --import public_key成功時會印出匯入成功的public key uid和hash code
gpg --allow-secret-key-import --import priv_key
成功時會印出匯入成功的private key uid, hash ccode, 和public key
對檔案加密
這裡使用keyring裏面有我個人名稱MiroChiu的private key進行檔案加密gpg --recipient MiroChiu --output demo.en.txt --encrypt demo.txt
簡短的寫法
gpg -r MiroChiu -o demo.en.txt -e demo.txt
對檔案解密
解密的時候不需要指定要用哪把key,因為加密檔會有解密所需的public key資訊,只要你的keyring中有這把key就能夠解開他,gpg -o demo.de.txt -d demo.en.txt
***由於GunPG是Linux的程式沒有副檔名的概念,所以拿GunPG加密我會建議在產生加密檔案的時候就把檔名多加上.pgp,避免其他使用者拿去Windows要解密的時候,因為沒有正常的副檔名而無法運作
對檔案加密並簽章
用自己的private key加密檔案,並用對方public key簽章,確定只有對方能夠解密gpg --local-user MiroChiu --recipient "Your friend name" --armor --sign --encrypt demo.txt
簡短的寫法
gpg --local-user MiroChiu -r "Your friend name" --armor -s -e demo.txt
對有簽章加密的檔案解密
gpg -o demo_dec.tx -d demo.txt.pgp
參考資料:
http://www.ruanyifeng.com/blog/2013/07/gpg.html
https://www.digitalocean.com/community/tutorials/how-to-use-gpg-to-encrypt-and-sign-messages-on-an-ubuntu-12-04-vps
留言