目录
  1. 1. 特性
  2. 2. 安装
  3. 3. 快速使用
    1. 3.1. 设置优先级
  4. 4. 高级设置
    1. 4.1. 文章信息头
    2. 4.2. _config.yml
      1. 4.2.1. 示例
    3. 4.3. 配置优先级
Hexo对文章进行加密

参考: https://github.com/MikeCoder/hexo-blog-encrypt

Hexo会将我们本地编写好的markdown文章进行编译,然后生成静态页面部署到服务器之中。

但有些文章我们不希望公开,希望将文章进行加密,用户只有输入正确的验证码之后,才能进行访问。

这种情况,wordpress、emlog等其他博客系统很容易进行设置,但是Hexo却不行。

为了解决这个需求,我们需要引入hexo-blog-encrypt

特性

  • 一旦你输入了正确的密码, 它将会被存储在本地浏览器的localStorage中。再次访问,不需输入密码。

  • 支持按标签加密。

  • 所有的核心功能都是由原生的API所提供的。 在 Node.js中, 我们使用 Crypto。在浏览器中, 我们使用 Web Crypto API。

  • PBKDF2, SHA256 被用于分发密钥, AES256-CBC 被用于加解密, 还使用 HMAC 来验证密文的来源, 并确保其未被篡改。

  • 广泛地使用 Promise 来进行异步操作, 以此确保线程不被杜塞。

  • 过时的浏览器将不能正常显示, 因此, 请升级浏览器。

安装

1
npm install --save hexo-blog-encrypt

快速使用

将 “password” 字段添加到文章信息头:

1
2
3
4
title: Hello World
date: 2016-03-30 21:18:02
password: abcd1234xxx
---

再使用hexo clean && hexo g && hexo s在本地预览加密的文章。

设置优先级

文章信息头 > 按标签加密

高级设置

文章信息头

1
2
3
4
5
6
7
8
9
10
title: Hello World
tags:
- 加密文章tag
date: 2019-10-26 20:22:58
password: mikemessi
abstract: 该文章已加密, 请输入密码查看。
message: 该文章已加密, 请输入密码查看。
wrong_pass_message: 密码不正确,请重新输入!
wrong_hash_message: 文章不能被校验, 不过您还是能看看解密后的内容!
---

_config.yml

示例

1
2
3
4
5
6
7
8
9
10
11

# Security
encrypt: # hexo-blog-encrypt
abstract: 有东西被加密了, 请输入密码查看.
message: 您好, 这里需要密码.
tags:
- {name: tagName, password: 密码A}
- {name: tagName, password: 密码B}
template: <div id="hexo-blog-encrypt" data-wpm="{{hbeWrongPassMessage}}" data-whm="{{hbeWrongHashMessage}}"><div class="hbe-input-container"><input type="password" id="hbePass" placeholder="{{hbeMessage}}" /><label>{{hbeMessage}}</label><div class="bottom-line"></div></div><script id="hbeData" type="hbeData" data-hmacdigest="{{hbeHmacDigest}}">{{hbeEncryptedData}}</script></div>
wrong_pass_message: 抱歉, 这个密码看着不太对, 请再试试.
wrong_hash_message: 抱歉, 这个文章不能被校验, 不过您还是能看看解密后的内容.

注:若文章中采用_config.yml中的全局配置,则文章的tags只能有一个,若有多个tags,则失效。

配置优先级

文章信息头 > _config.yml (站点根目录下的) > 默认配置

文章作者: 李浩
文章链接: https://leehoward.cn/2019/10/26/Hexo对文章进行加密/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 leehoward
打赏
  • 微信
  • 支付宝

评论