hexo-encrypt
Hexo 文章加密插件:轻松为你的博客添加密码保护
你是否想在 Hexo 博客中发布一些仅限特定读者查看的内容?例如私人日记、付费教程或内部资料?本文将详细介绍一款自制的轻量级加密插件,它能为指定文章添加密码保护,并提供优雅的解锁交互,支持记忆密码、自动锁定等功能。
🚀 插件特点
- 简单易用 – 仅需在
_config.yml或文章 Front-matter 中配置密码,即可生效。 - 美观交互 – 双线输入框,浮动标签,透明卡片,适配深色主题。
- 多密码支持 – 可设置多个密码,任意一个正确即可解锁。
- 灵活记忆 – 支持会话记忆(关闭浏览器即失效)和定时记忆(如 12 小时、7 天)。
- 自动锁定 – 记忆时间到期后自动重新加密,保障隐私。
- 重新加密 – 阅读后一键恢复加密状态,防止他人偷窥。
- 错误限制 – 最多尝试 3 次,超时锁定输入框,防止暴力破解。
⚙️ 配置
全局配置(_config.yml)
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
password |
string / array | 必填 | 一个或多个密码 |
errmsg |
string | '密码错误' |
错误提示文字 |
max_tries |
number | 3 |
最大错误尝试次数 |
all_post |
boolean | false |
是否加密所有文章 |
remember |
boolean / string | false |
记忆模式:true(定时)、'session'(会话)、false(不记忆) |
remember_days |
number | 7 |
记忆天数(仅当 remember: true) |
示例:
1 | encrypt: |
单篇文章覆盖(Front-matter)
在需要加密的文章顶部添加:
1 |
|
🔐 使用方式
访问加密文章
- 进入文章页面,你会看到一个简洁的密码输入框。
- 输入正确密码(支持回车提交),文章内容即刻显示。
- 阅读完毕后,可点击文章末尾的 “加密” 按钮,立即隐藏内容并重新锁定。
记忆功能
- 会话记忆(
remember: 'session'):关闭浏览器标签页或整个浏览器后,缓存自动清除,再次访问需重新输入密码。 - 定时记忆(
remember: true+remember_days: N):在N天内,同一设备打开文章无需再次输入密码;超过时限则自动锁定。 - 关闭记忆(
remember: false):每次访问都必须输入密码。
💡 提示:记忆功能基于浏览器的
localStorage或sessionStorage,仅对当前设备有效,请勿在公共电脑上启用长期记忆。
🎨 自定义样式
插件采用纯 CSS 编写,你可以轻松调整外观。以下是一些常用修改:
修改“请输入密码”文字样式
在插件 CSS 中找到:
1 | .input-wrapper label { |
调整解密按钮宽度
1 | .decrypt-btn { |
更改双线颜色
1 | .input-wrapper { |
深色模式适配
插件已内置对 .dark 类的支持,如果你的主题使用其他类名,可自行调整 CSS 中的选择器。
📝 完整插件源码
将以下代码保存为 scripts/encrypt.js:
⚠️ 注意事项
- 安全性:加密基于 AES-256-CBC,但所有逻辑在客户端执行,仅适合轻度保护,请勿用于高敏感内容。
- 兼容性:需要浏览器支持
localStorage和sessionStorage(现代浏览器均支持)。 - 主题适配:深色模式依赖
.dark类,如果你的主题使用其他类名(如dark-mode),请修改 CSS 中的选择器。 - 多密码:配置多密码时,任意一个正确即可解锁,适用于团队共享场景。
- 缓存清理:若遇显示异常,尝试清除浏览器缓存或点击“加密”按钮手动重置。
🎯 结语
通过这个小插件,你可以轻松为 Hexo 文章增加密码屏障,兼顾隐私保护与用户体验。无论是分享给特定好友,还是作为付费内容的预览,它都能派上用场。
- 标题: hexo-encrypt
- 作者: milkmoli
- 创建于 : 2026-06-25 00:00:00
- 更新于 : 2026-06-25 17:46:21
- 链接: https://milkmoli.github.io/2026/06/25/hexo-encrypt/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。