加密和解密:
# openssl des -salt -in file -out file.des
# openssl des -d -salt -in file.des -out file
那個 file 可以是歸檔文件(tar archive)。
# tar -cf - directory | openssl des -salt -out directory.tar.des # 加密
# openssl des -d -salt -in directory.tar.des | tar -x # 解密
# tar -zcf - directory | openssl des -salt -out directory.tar.gz.des # 加密
# openssl des -d -salt -in directory.tar.gz.des | tar -xz # 解密
在使用-k mysecretpassword后,des會取消交互式的密碼請求。不過,這非常不安全。
使用des3代替des來獲得更強的加密(Triple-DES Cipher)。這同樣會消耗更多的CPU。
GnuPG 是眾所周知的對郵件或任何數(shù)據(jù)進行加密和簽名的軟件。此外,gpg 還提供高級密鑰管理系統(tǒng)。此章節(jié)只涵蓋了文件加密,沒有郵件加密、簽名或者信任網(wǎng)絡(Web-Of-Trust)。
單純的加密是一個對稱式的加密算法(symmetric cipher)。在本例中,文件是用一個秘密來加密的,任何人知道了這個密碼都可以對其進行解密,因此就不需要密鑰。Gpg 添加后綴 ".gpg" 到已加密的文件名。
# gpg -c file # 使用密碼加密文件
# gpg file.gpg # 文件解密(選項 -o 其他文件)
對于更詳細的請看 GPG 快速上手 和 GPG/PGP 基礎,特別是 gnupg 文檔。
密鑰對(私鑰,公鑰)為非對稱加密技術。 要點如下:
你的公鑰是用來給_別人_加密文件的并且只有你作為接收者才可以解密(甚至不是一個人加密的文件也可以解密)。公鑰是公開的也就意味著可以分發(fā)。
用你的密碼加密的私鑰用來解密用_你的_公鑰加密的文件。這個密鑰必須保持安全。因為如果遺失了私鑰或者密碼,那么所有的文件都是使用你的公鑰加密的。
多個密鑰文件被稱為密鑰環(huán)(keyrings),她可以包含一個以上的密鑰。
首先生成密鑰對。使用默認就行,但你至少要輸入你的全名、郵件地址和可選注釋。該注釋對于創(chuàng)建相同的名字和郵件地址的多個密鑰來說非常有用。此外,你應該使用"口令(passphrase)",而不是簡單的密碼。
# gpg --gen-key # 這需要一些時間
在 Unix 上密鑰存儲在 ~/.gnupg/ 中,在 Windows 上通常存儲在
C:/Documents and Settings/%USERNAME%/Application Data/gnupg/ 中。
~/.gnupg/pubring.gpg # 包含你的公鑰和所有其他導入的信息
~/.gnupg/secring.gpg # 可包含多個私鑰
常用選項的簡短描述:
-e 加密數(shù)據(jù)
-d 解密數(shù)據(jù)
-r 為某個收件者加密('全名' 或者 'email@domain')
-a 輸出經過 ascii 封裝的密鑰
本實例使用'Your Name' 和 'Alice' 作為密鑰的 email 或 全名 或 部分名字的參考。舉個例子,我可以使用 'Colin' or 'c@cb.vu' 給我的密鑰 [Colin Barschel (cb.vu) c@cb.vu]。
不需要導出/導入任何密鑰,因為你都已經有了。
# gpg -e -r 'Your Name' file # 使用你的公鑰加密
# gpg -o file -d file.gpg # 解密。使用 -o 指定輸出文件
首先你需要導出給別人使用的公鑰。并且你需要導入來自 Alice 她所加密文件的公鑰。你可以用簡單的 ascii 文檔或者使用公鑰服務器來保存這些密鑰。
舉個例子,Alice 導出她的公鑰,然后你導入它,之后你就可以加密一個文件給她。這個加密文件只有 Alice 可以解密。
# gpg -a -o alicekey.asc --export 'Alice' # Alice 導出她的公鑰到 ascii 文件中
# gpg --send-keys --keyserver subkeys.pgp.net KEYID # Alice 把她的公鑰放入一個服務器
# gpg --import alicekey.asc # 你導入她的密鑰到你的公鑰環(huán)(pubring)中
# gpg --search-keys --keyserver subkeys.pgp.net 'Alice' # 或者從一個服務器中獲取他的公鑰
一旦這些公鑰導入后,加密或解密一個文件會非常簡單:
# gpg -e -r 'Alice' file # 給 Alice 加密文件
# gpg -d file.gpg -o file # 解密 Alice 給你的加密文件
# gpg --list-keys # 列出所有公鑰并查看其 KEYID
KEYID 跟在 '/' 后面 比如:pub 1024D/D12B77CE 它的 KEYID 是 D12B77CE
# gpg --gen-revoke 'Your Name' # 產生一份撤銷密鑰證書
# gpg --list-secret-keys # 列出所有私鑰
# gpg --delete-keys NAME # 從本的密鑰環(huán)中刪除一個公鑰
# gpg --delete-secret-key NAME # 從本的密鑰環(huán)中刪除一個私鑰
# gpg --fingerprint KEYID # 顯示 KIYID 這個密鑰的指紋
# gpg --edit-key KEYID # 編輯密鑰(比如簽名或者添加/刪除 email)
更多建議: