Hexo Butterfly主题 文章设置加密

虽然我觉得给公开发布的文章加密实在是意义不明,但是怎么实现还是值得研究的。

很简单,安装 hexo-blog-encrypt 插件就行了,Github 链接 点这里 。

npm install hexo-blog-encrypt

根据它的文档页面的说明,在 Hexo 博客根目录的 _config.yml 里添加下面的自定义配置。

encrypt: # hexo-blog-encrypt
  abstract: 有东西被加密了, 请输入密码查看.
  message: 您好, 这里需要密码.
  wrong_pass_message: 抱歉, 这个密码看着不太对, 请再试试.
  theme: default
  silent: false

  # 加密所有带有以下标签的文章.
  tags:
  - {name: 作为日记加密, password: 密码A}
  - {name: 作为提示加密, password: 密码B}

  # 在密码框旁显示 "解密" 按钮. 默认: true.
  decryptButton:
    show: true
    text: 解密

  # 将派生出的 AES 密钥缓存到 localStorage, 刷新页面时跳过密码输入.
  # 默认: false. 可在这里全局开启, 也可在文章信息头中单独开启.
  # 缓存键为 `hbe.v4.<页面路径>`.
  autoSave: false

  # 让同一篇文章的 PBKDF2 salt 在 clean build 之间保持稳定, 文章身份来自
  # post permalink. 默认: false. 配合 autoSave 时, 适用于
  # Cloudflare Pages、Vercel、Netlify、GitHub Actions 等每次部署都会从
  # 干净环境重新生成 HTML 的平台.
  #
  # 只稳定 salt; AES-GCM nonce 每次加密仍然随机, 避免 nonce reuse.
  # 如果文章 permalink 改变, stable salt 也会改变, 该页面已有的
  # localStorage 缓存会失效.
  stableSalt: false

  # PBKDF2 迭代次数. 下限: 100_000. 推荐 ≥ 600_000
  # (OWASP 2023 关于 PBKDF2-SHA256 的推荐). 低于推荐值时构建会打印 warning.
  # 默认: 250_000.
  kdf:
    iterations: 250000

配置完了,只需要在每篇需要加密的文章的 front-matter 里加上 password: 123456 这种就可以了

更复杂的配置我还没研究,自己去看文档吧,它有中文文档的,以防你找不到(点这里) 。