什么是 GnuPG ?
GPG 全名叫 GNU Privacy Guard, 是一个加密前端, 可以使用 RSA 、ESCDA 等算法去加密
下载 GnuPG
获取密钥(Windows 使用终端命令)
请记住, 密钥绝不要给任何人
gpg --gen-key
默认选项即可
加密解密文件
- 加密之前
- 加密分为两种
- 对称加密解密(双方只要输入对密码就可以查看和加密)
- 非对称加密解密(对方使用 你给的公钥加密, 只有使用 你自己的密钥 能解密查看)
- 加密分为两种
- 详细解释
对称加密解密
- 加密(输入两次相同密码)
gpg --symmetric filename
- 解密(输入配对密码, 与上面的密码相同)
# 仅仅解密内容 gpg -d filename.gpg # 解密并输出原文件 gpg -o fileame -d filename.gpg
非对称加密解密(个人常用)
- 加密
# -r 表示 gpg 用户, 就刚才创建密钥的用户名 gpg -e -r User filename
- 解密
# 仅仅解密内容 gpg -d filename.gpg # 解密并输出原文件 gpg -o fileame -d filename.gpg
导出(请不要将密钥发送给任何人,自己导出密钥保存就好)
gpg -o filename.asc --export keyID
导入(个人使用导入密钥就好)
gpg --import filename.asc
FAQ❓
是不是在我的电脑上,使用别人A的公钥加密了一个文件,而我没有别人A的密钥,我也无法读取查看。是吗??
是的
是不是使用 非对称加密(不需要密码),别人没有公钥和私钥就无法破解读取数据?
公钥大家都可以有,可以用来加密(比如在公共平台发一个只有你能解密的消息)但不可以用来解密。私钥只有你有,可以用来解密
也就是只有私钥才能查看数据??在属于自己的机器,只需要导入私钥就好了,是吧(是的)
那现在的GPG加密在没有私钥的情况下有没有可能被破解??
首先,GPG只是一个前端,背后用的一般是RSA。密钥位数够的话,你可以认为没有可能
Emacs 使用 GPG
- 只要后端正常使用 GPG, Emacs 打开 .gpg 文件会自动解密, 在编辑保存后自动解密
org-mode 使用 GPG 加密
- 配置 EPG(Emacs的一个包, 调用 GPG)
(require 'org-crypt) (org-crypt-use-before-save-magic) (setq org-tags-exclude-from-inheritance '("crypt")) ;; GPG ID, 解密一个文件可以知道这个ID, 每个人都不同 (setq org-crypt-key "0PVT4708DD97889B") (setq auto-save-default nil)
加密 在标题后面写上 :crypt: , 保存文件将会自动加密此标题内容
注意: Windows 加密会乱码,导致无法解密org标题内容,谨慎使用(请不要在Windows使用Org加密)
解密 将 光标放在具有 :crypt: 标题上, 命令 org-decrypt-entry