文章加密

Hexo 博客文章加密

Hexo 博客中,有时我们需要对某些私密文章进行加密,以防止未经授权的访问。Hexo 本身并不直接支持文章加密,但可以通过插件 hexo-blog-encrypt 来实现这一功能。

安装插件

首先,在 Hexo 项目的根目录下安装 hexo-blog-encrypt 插件:

1
npm install --save hexo-blog-encrypt

或者使用 Yarn:

1
yarn add hexo-blog-encrypt

配置插件

Hexo 项目的 config.yml 文件中添加以下配置:

1
2
3
4
5
6
encrypt:
enable: true
abstract: 有东西被加密了, 请输入密码查看
message: 您好, 这里需要密码
wrong_pass_message: 抱歉, 这个密码看着不太对, 请再试试
wrong_hash_message: 抱歉, 这个文章不能被校验, 不过您还是能看看解密后的内容

使用插件要在需要加密的文章头部添加 password 字段,例如:

1
2
3
4
5
6
7
8
9
---
title: Hello World
date: 2016-03-30 21:18:02
password: hello
abstract: 有东西被加密了, 请输入密码查看
message: 您好, 这里需要密码
wrong_pass_message: 抱歉, 这个密码看着不太对, 请再试试
wrong_hash_message: 抱歉, 这个文章不能被校验, 不过您还是能看看解密后的内容
---

高级设置

你还可以在 config.yml 文件中设置按标签加密:

1
2
3
4
encrypt:
tags:
- {name: tagName, password: 密码A}
- {name: tagName, password: 密码B}

如果你有一篇文章使用了 TOC(目录),你需要修改模板的部分代码。例如,在 hexo/themes/landscape/layout/_partial/article.ejs 文件中找到并替换以下代码:
找到 <% post.content %> 这段代码,通常在30行左右

1
2
3
4
5
6
7
8
9
10
11
12
<% if(post.toc == true){ %>
<div id="toc-div" class="toc-article" <% if (post.encrypt == true) { %>style="display:none" <% } %>>
<strong class="toc-title">Index</strong>
<% if (post.encrypt == true) { %>
<%- toc(post.origin, {list_number: true}) %>
<% } else { %>
<%- toc(post.content, {list_number: true}) %>
<% } %>
</div>
<% } %>
<%- post.content %>

通过以上步骤,你可以轻松地在 Hexo 博客中实现文章加密功能,保护你的私密内容

参考:123