一 概述
Hexo编写Markdown文章后生成的静态页面默认是公开不加密的,所有人都可以访问,如果希望某些文章需要访问者只有输入正确的密码后才能继续访问,则需要使用插件hexo-blog-encrypt
- 加密后的文章特性
- 安装encrypt插件
- 快速入门
- 高级设置
二 加密后的文章特性
- 一旦你输入了正确的密码, 它将会被存储在本地浏览器的localStorage中。再次访问,不需输入密码
- 支持按标签加密
- 所有的核心功能都是由原生的API所提供的。 在 Node.js中, 我们使用 Crypto。在浏览器中, 我们使用 Web Crypto API
- 所有的核心功能都是由原生的API所提供的。 在 Node.js中, 我们使用 Crypto。在浏览器中, 我们使用 Web Crypto API
- 广泛地使用 Promise 来进行异步操作, 以此确保线程不被堵塞
- 过时的浏览器将不能正常显示
三 安装encrypt插件
在博客目录下执行下面的指令安装encrypt
1 |
npm install --save hexo-blog-encrypt |
安装完成后,再package.json文件的dependecies依赖中看到encrypt插件
1 2 3 |
"dependencies": {
"hexo-blog-encrypt": "^3.0.13",
}
|
四 快速入门
4.1 加密文章设置(password属性)
将"password"字段添加到文章信息头部:
1 2 3 4 5 6 7 8 9 10 11 |
--- title: WordPress站点之——博客搭建 categories: - 站点 - WordPress tags: - WordPress abbrlink: cc7cba44 date: 2020-11-07 23:05:38 password: 1234 --- |
4.2 执行hexo g&&hexo s后,便可在本地查看加密后的文章预览
4.3 输入密码错误后,界面提示
五 高级设置
5.1 博客根目录 _config.yml
1 2 3 4 5 6 7 8 9 10 |
# 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: 抱歉, 这个文章不能被校验, 不过您还是能看看解密后的内容.
|
5.2 对要加密的文章 ,修改文章信息头如下
1 2 3 4 5 |
password: 1234 abstract: 这里有东西被加密了,需要输入密码查看哦。 message: 您好,这里需要密码。 wrong_pass_message: 抱歉,这个密码看着不太对,请再试试。 wrong_hash_message: 抱歉,这个文章不能被纠正,不过您还是能看看解密后的内容。 |
5.3 配置优先级
文章信息头 > _config.yml (站点根目录下的) > 默认配置