GNU Privacy Guard(GnuPG或GPG)
GnuPG之所以是一款混合型加密软件程序,原因在于它结合使用了传统的对称密钥密码算法(确保速度快)和公钥密码算法(确保易于安全地交换密钥),其实现方法通常是使用接收方的公钥来加密只使用一次的会话密钥。这种操作模式是OpenPGP标准的一部分,也是PGP自第一个版本以来的一部分。
GnuPG使用由GnuPG用户单独创建的非对称密钥对来加密消息。随之生成的公钥可以以诸多方式与其他用户交换,比如互联网密钥服务器。公钥必须认真交换,防止有人破坏公钥“所有者”的身份通信而引起的身份欺诈。还有可能为消息添加密码数字签名,那样就能验证消息完整性和发送方。
gpg命令详细说明
gpg –help
gpg (GnuPG) 2.0.14
libgcrypt 1.4.5
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Home: ~/.gnupg
支持的算法:
公钥:RSA, ELG, DSA
对称加密:3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128,
CAMELLIA192, CAMELLIA256
散列:MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
压缩:不压缩, ZIP, ZLIB, BZIP2
语法:gpg [选项] [文件名]
签名、检查、加密或解密
默认的操作依输入数据而定
指令:
-s, –sign make a signature
–clearsign make a clear text signature
-b, –detach-sign 生成一份分离的签名
-e, –encrypt 加密数据
-c, –symmetric 仅使用对称加密
-d, –decrypt 解密数据(默认)
–verify 验证签名
-k, –list-keys 列出密钥
–list-sigs 列出密钥和签名
–check-sigs 列出并检查密钥签名
–fingerprint 列出密钥和指纹
-K, –list-secret-keys 列出私钥
–gen-key 生成一副新的密钥对
–delete-keys 从公钥钥匙环里删除密钥
–delete-secret-keys 从私钥钥匙环里删除密钥
–sign-key 为某把密钥添加签名
–lsign-key 为某把密钥添加本地签名
–edit-key 编辑某把密钥或为其添加签名
–gen-revoke 生成一份吊销证书
–export 导出密钥
–send-keys 把密钥导出到某个公钥服务器上
–recv-keys 从公钥服务器上导入密钥
–search-keys 在公钥服务器上搜寻密钥
–refresh-keys 从公钥服务器更新所有的本地密钥
–import 导入/合并密钥
–card-status 打印卡状态
–card-edit 更改卡上的数据
–change-pin 更改卡的 PIN
–update-trustdb 更新信任度数据库
–print-md print message digests
–server run in server mode
选项:
-a, –armor 输出经 ASCII 封装
-r, –recipient USER-ID encrypt for USER-ID
-u, –local-user USER-ID use USER-ID to sign or decrypt
-z N set compress level to N (0 disables)
–textmode 使用标准的文本模式
-o, –output FILE write output to FILE
-v, –verbose 详细模式
-n, –dry-run 不做任何改变
-i, –interactive 覆盖前先询问
–openpgp 行为严格遵循 OpenPGP 定义
(请参考在线说明以获得所有命令和选项的完整清单)
范例:
-se -r Bob [文件名] 为 Bob 这个收件人签名及加密
–clearsign [文件名] 做出明文签名
–detach-sign [文件名] 做出分离式签名
–list-keys [某甲] 显示密钥
–fingerprint [某甲] 显示指纹
请向 <http://bugs.gnupg.org> 报告程序缺陷。
请向 <zuxyhere@eastday.com> 反映简体中文翻译的问题。
Linux下加密文件
想加密单单一个文件,可以使用命令gpg,如下所示:
root@kali:~# gpg -c secretfilename
想加密secretfilename.txt文件,输入这个命令:
root@kali:~# gpg -c secretfilename.txt
示例输出:
Enter passphrase:
Repeat passphrase:
这将创建secretfilename.txt.gpg文件。GnuPG或GPG帮助文档如下所示:
GnuPG or GPG help menu
要是你果真忘了密码(口令短语),就无法恢复数据,因为它使用非常强的加密机制。
解密文件
想解密文件,可以使用gpg命令,如下所示:
root@kali:~# gpg secretfilename.txt.gpg
示例输出:
gpg secretfilename.txt.gpg
gpg: CAST5 encrypted data
Enter passphrase:
如果想解密文件,将输出写入到文件secretfilename.txt,你可以运行这个命令:
root@kali:~# gpg secretfilename.txt.gpg –o secretfilename.txt
gpg -o equation_grug.tar.xz -d equation_grug.tar.xz.gpg
输入密码:FuckTheWorld
$xz -d equation_grug.tar.xz
$tar xf equation_grug.tar