Hexo文章加密

前言:

​ 博客中可能有些文章是个人情感宣泄、敏感内容或收费技术等,不方便公开,需要对文章进行加密处理。而Next这个主题可谓是包办了几乎所有的需求,却偏偏没有集成文章加密功能。但俗话说的好,办法总比困难多。

方法一:

编辑/themes/next/layout/_partials/head.swig在如下位置添加代码

1
2
3
4
5
6
7
8
9
10
<script>
(function(){
if('{{ page.password }}'){
if (prompt('请输入密码') !== '{{ page.password }}'){
alert('密码错误');
history.back();
}
}
})();
</script>

image-20210821143327571

之后,在你想要加密的文章的头文件里添加上password: xxxxxx 即可。

image-20210821143828921

演示:

image-20210821144043245

问题:

  • 丑。调用浏览器的UI,各个平台的样式不统一。

  • 容易被破解。前端的验证,都是浮云。有心之人想要破解的话那不是分分钟的事。

方法二:

使用大神Hexo插件。

安装
1
npm install --save hexo-blog-encrypt
启用

在站点配置文件添加如下代码,启用插件。

1
2
encrypt:
enable: true
文章配置

在你的文章的头部添加上对应的字段,如 password, abstract, message

image-20210821145640641

  • password: 是该博客加密使用的密码
  • abstract: 是该博客的摘要,会显示在博客的列表页
  • message: 这个是博客查看时,密码输入框上面的描述性文字
自定义
1
2
3
4
encrypt:
enable: true
default_abstract: 文章默认摘要
default_message: 文章默认描述文字

这样,对于每一篇需要加密的文章就不必都在在头部添加 abstractmessage 字段了,脚本会自动添加默认的内容填充。 而你在文章头部的配置优先级高于站点配置文件default配置,会覆盖它。

image-20210821151528503

tips:本地预览输入密码可能会无响应,因为需要https协议,部署到服务器就没问题啦。

富婆 饿饿 饭饭
0%