17.17 Org Crypt

Org Crypt 会加密条目的正文内容,但不会加密标题或属性。其底层使用 Emacs EasyPG 库 进行文件加解密,而 EasyPG 需要正确配置 GnuPG

带有 ‘crypt’ 标签的标题下方文本,在文件保存时会自动加密。如需使用其他标签,可自定义 org-crypt-tag-matcher 设置。

以下是在 Emacs 初始化文件中推荐的 Org Crypt 设置:

(require 'org-crypt)
(org-crypt-use-before-save-magic)
(setq org-tags-exclude-from-inheritance '("crypt"))

(setq org-crypt-key nil)
;; 用于加密的 GPG 密钥。
;; nil 表示无条件使用对称加密。
;; "" 表示除非标题设置 CRYPTKEY 属性,否则使用对称加密。

(setq auto-save-default nil)
;; 自动保存与 org-crypt.el 不兼容:因此如果你打算频繁使用 org-crypt.el,
;; 需要将其关闭。否则每次启动 Org 时都会出现烦人的提示。

;; 若仅在本地关闭,可插入如下内容:
;;
;; # -*- buffer-auto-save-file-name: nil; -*-

可以通过为不同标题指定 ‘CRYPTKEY’ 属性,使用不同密钥,例如:

* Totally secret :crypt:
  :PROPERTIES:
  :CRYPTKEY: 0x0123456789012345678901234567890123456789
  :END:

注意 ‘CRYPTKEY’ 属性仅在 org-crypt-keynil 时生效。若 org-crypt-keynil ,Org 会无条件使用对称加密。

将 ‘crypt’ 标签排除在继承之外,可避免已加密文本被重复加密。