目录

GnuPG(GPG) 加密

什么是 GnuPG ?

GPG 全名叫 GNU Privacy Guard, 是一个加密前端, 可以使用 RSA 、ESCDA 等算法去加密

下载 GnuPG

获取密钥(Windows 使用终端命令)

请记住, 密钥绝不要给任何人

1
gpg --gen-key

默认选项即可

加密解密文件

  • 加密之前
    • 加密分为两种
      1. 对称加密解密(双方只要输入对密码就可以查看和加密)
      2. 非对称加密解密(对方使用 你给的公钥加密, 只有使用 你自己的密钥 能解密查看)
  • 详细解释

对称加密解密

  • 加密(输入两次相同密码)
1
gpg --symmetric filename
  • 解密(输入配对密码, 与上面的密码相同)
    1
    2
    3
    4
    
    # 仅仅解密内容
    gpg -d filename.gpg
    # 解密并输出原文件
    gpg -o fileame -d filename.gpg
    

非对称加密解密(个人常用)

  • 加密
    1
    2
    
    # -r 表示 gpg 用户, 就刚才创建密钥的用户名
    gpg -e -r User filename
    
  • 解密
    1
    2
    3
    4
    
    # 仅仅解密内容
    gpg -d filename.gpg
    # 解密并输出原文件
    gpg -o fileame -d filename.gpg
    

导出(请不要将密钥发送给任何人,自己导出密钥保存就好)

1
gpg -o filename.asc --export keyID

导入(个人使用导入密钥就好)

1
gpg --imort filename.asc

FAQ❓

  1. 是不是在我的电脑上,使用别人A的公钥加密了一个文件,而我没有别人A的密钥,我也无法读取查看。是吗??

    是的

  2. 是不是使用 非对称加密(不需要密码),别人没有公钥和私钥就无法破解读取数据?

    公钥大家都可以有,可以用来加密(比如在公共平台发一个只有你能解密的消息)但不可以用来解密。私钥只有你有,可以用来解密

    也就是只有私钥才能查看数据??在属于自己的机器,只需要导入私钥就好了,是吧(是的)

  3. 那现在的GPG加密在没有私钥的情况下有没有可能被破解??

    首先,GPG只是一个前端,背后用的一般是RSA。密钥位数够的话,你可以认为没有可能

Emacs 使用 GPG

  • 只要后端正常使用 GPG, Emacs 打开 .gpg 文件会自动解密, 在编辑保存后自动解密

org-mode 使用 GPG 加密

  • 配置 EPG(Emacs的一个包, 调用 GPG)
    1
    2
    3
    4
    5
    6
    
    (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