在阮一峰大神的博客(http://www.ruanyifeng.com/blog/2013/07/gpg.html)上学的gpg。这里练习后做下的记录,其实主要改了下排版,方便个人使用。
密钥文件保存在~/.gunpg/下
加密:(需要系统有对方的公钥)
gpg --recipient [用户ID] --output sec.txt --encrypt source.txt
解密:(确定加密文件是以自己的公钥加密的)
gpg sec.txt
签名:
只签名不加密:
签名指令 | 得到的签名文件 | 备注 | 验证指令 |
---|---|---|---|
gpg --sign source.txt | source.txt.gpg | 二进制形式存储;包含文件内容; | gpg --verify source.txt.gpg |
gpg --clearsign source.txt | source.txt.asc | 文本形式存储;包含文件内容; | gpg --verify source.txt.asc |
gpg --detach-sign source.txt | source.txt.sig | 二进制形式存储;不包含文件内容,验证时如果文件名不标准则需指明; | gpg --verify source.txt.sig |
gpg --armor --detach-sign source.txt | source.txt.asc | 文本形式存储;不包含文件内容,验证时如果文件名不标准则需指明; | gpg --verify source.txt.asc |
签名并加密:(收到这类文件时对其作解密操作即可同时获得解密文件并验证签名)
gpg --local-user [发信者ID] --recipient [接收者ID] --armor --sign --encrypt source.txt
验证:
gpg --verify source.txt.asc source.txt
列出系统已有密钥
gpg --list-keys
删除某个密钥
gpg --delete-key [用户ID]
在公钥服务器上查找他人公钥(无法保证公钥是否可靠,下载后还需要用其他机制验证)
gpg --keyserver hkp://subkeys.pgp.net --search-keys [用户ID]
导入密钥
gpg --import [密钥文件]
导出某个公钥/私钥,并以ASCII显示
gpg --armor --output public-key.txt --export [用户ID]
gpg --armor --output private-key.txt --export-secret-keys