Q: 我想把一个密码用邮件发给我的朋友,这么避免发送过程中被人窃听导致泄密
A: 使用 GPG 加密即可,具体步骤如下
假设小王想发送密码给我,那么我首先做如下操作
1. 生成一个新的 GPG key:
$ gpg --gen-key
中间需要输入一些必要的信息
2. 确认 GPG key
$ gpg -K
/home/lidb/.gnupg/secring.gpg
-----------------------------
sec 2048R/E0084AC3 2011-12-16
uid LI Daobing <lidaobing@gmail.com>
ssb 2048R/FFB0140F 2011-12-16
3. 导出 GPG 的公钥
$ gpg --export --armor E0084AC3 > lidaobing.key
4. 把生成的 lidaobing.key 发送给小王
小王收到 lidaobing.key 后,要如下步骤操作
1. 导入 GPG 公钥
$ gpg --import lidaobing.key
2. 确认导入成功
$ gpg -k
/home/everbox/.gnupg/pubring.gpg
--------------------------------
pub 2048R/E0084AC3 2011-12-16
uid LI Daobing <lidaobing@gmail.com>
sub 2048R/FFB0140F 2011-12-16
3. 加密文件
$ gpg --recipient lidaobing@gmail.com --encrypt password.txt
gpg: FFB0140F: There is no assurance this key belongs to the named user
pub 2048R/FFB0140F 2011-12-16 LI Daobing <lidaobing@gmail.com>
Primary key fingerprint: 6E39 DB6A 37EE 0704 62B0 F7FA 5C26 5D2C E008 4AC3
Subkey fingerprint: DDE0 42FC 8D79 BB4F 72AC 06E8 658A F431 FFB0 140F
It is NOT certain that the key belongs to the person named
in the user ID. If you *really* know what you are doing,
you may answer the next question with yes.
Use this key anyway? (y/N) y
4. 把生成的 password.txt.gpg 发给我。
我收到 password.txt.gpg 后需要做如下的操作
1. 解密
$ gpg --output password.txt --decrypt password.txt.gpg
You need a passphrase to unlock the secret key for
user: "LI Daobing <lidaobing@gmail.com>"
2048-bit RSA key, ID FFB0140F, created 2011-12-16 (main key ID E0084AC3)
gpg: encrypted with 2048-bit RSA key, ID FFB0140F, created 2011-12-16
"LI Daobing <lidaobing@gmail.com>"
2. 查看 password.txt
备注
1. 生成的公钥 lidaobing.key 无须保密,可以反复使用,可以到处分发
2. 你的公钥可以发布到一些公共的 GPG 平台,用于大家给你发送加密信息或者验证你的签名
$ gpg --keyserver hkp://keys.gnupg.net --send-keys E0084AC3
3. 如果你使用 thunderbird, 可以使用 enigmail 来协助你做加密,解密,签名,验证的工作
参考
1. http://www.madboa.com/geek/gpg-quickstart/