起因

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

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

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

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

特性

  • 一旦你输入了正确的密码, 它将会被存储在本地浏览器的localStorage中。再次访问,不需输入密码。
  • 支持按标签加密。
  • 所有的核心功能都是由原生的API所提供的。 在 Node.js中, 我们使用 Crypto。在浏览器中, 我们使用 Web Crypto API。
  • PBKDF2, SHA256 被用于分发密钥, AES256-CBC 被用于加解密, 还使用 HMAC 来验证密文的来源, 并确保其未被篡改。
  • 广泛地使用 Promise 来进行异步操作, 以此确保线程不被杜塞。
  • 过时的浏览器将不能正常显示, 因此, 请升级浏览器。

使用说明

1.安装

1
npm install --save hexo-blog-encrypt

2.快速使用

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

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

设置优先级

文章信息头 > 按标签加密

3.高级设置

1)文章信息头

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

Too be continue···