方案:前端JS标签加密(强烈推荐,最贴合你的需求)
✅ 构建阶段完全没有任何加密运算!Cloudflare构建几十秒结束,不会超时
✅ 支持标签批量加密:只要文章打上private标签,自动挂上密码框,1000篇文章不用改md头部
✅ 密码框样式随便自定义(就是咱们之前调的美化样式)
❗ 安全说明:不是AES密文加密,只是前端隐藏内容。查看网页源代码能直接看到原文。
适合场景:防止访客随手点开阅读,不防懂网页调试的人,个人私密日记、家庭记录完全够用,不是极度敏感资料就行。
D:\blog-hexo\
├─ _config.yml # hexo站点主配置(在这里注释掉旧encrypt配置)
├─ _config.butterfly.yml # butterfly主题配置【粘贴inject代码到这里!】
├─ scripts\
│ └─ private-post.js # 我们新建的脚本
现在整体核对清单(全部做完就可以测试)
- ✅ 终端执行 npm uninstall hexo-blog-encrypt(卸载插件)
- ✅ _config.yml:注释上面整个encrypt配置块
- ✅ scripts/private-post.js 文件已创建
- ✅ _config.butterfly.yml 的inject已经追加好css+js代码
- ✅ 你的md文章 tags: [private] 完全不用改动
核心结论
不会造成Cloudflare构建超时,完全扛得住!
因为咱们现在这套方案没有任何构建期加密运算,不管是1500篇private文章,还是全部3000篇文章,Hexo构建的时候仅仅只做一件小事:
遍历文章front-matter,判断是否包含private标签,匹配成功就给正文包一层
这个操作开销极小,Hexo原生渲染文章时顺带执行,几乎不增加构建耗时。
和旧hexo-blog-encrypt的巨大差别
• 旧插件:1500篇private文章,每一篇都要做PBKDF2密码哈希,文章越多,构建时间线性暴涨,3000篇很容易Cloudflare超时。
• 当前scripts脚本:只是简单标签判断+字符串包裹,文本处理,速度极快,1500篇几乎感受不到额外耗时。
需要留意的小风险点(不是加密方案带来的,是迁移大量文章本身)
总文章数量接近3000篇,Hexo本身渲染静态文件的耗时
Hexo渲染几千篇文章本身就会需要一定时间,这是Hexo原生的性能问题,不是我们这个私密脚本导致。
旧 hexo-blog-encrypt 4.0.3 相关脚本文件说明:
不需要的脚本已经移动到 D:\blog-hexo\scripts\backup 备份了

看图分析
scripts 目录下文件列表:
- backup(文件夹)
- autocover.js
- generate_all.js
- global_private_auth.js
- hbe_expire.js
- private-post.js(我们新建的,问号代表新文件,还没 git 追踪,正常)
逐个说明
global_private_auth.js+hbe_expire.js
👉 这两个是旧 hexo-blog-encrypt 相关脚本,是之前 v4 加密插件配套的文件!
✅ 建议:直接删掉。
现在已经卸载了 hexo-blog-encrypt,不再使用旧加密逻辑,留着它们没有任何作用,防止产生冲突、多余逻辑干扰构建。
autocover.js、generate_all.js
👉 这两个是你其他自定义脚本(自动封面、批量生成类),和我们的私密文章方案无关,保留不动。backup文件夹
备份目录,保留,不用管。private-post.js
✅ 就是我们刚写的核心脚本,保留。问号图标只是 Git 标记:新文件尚未加入版本管理,不是报错。等下 git add . 就会把它纳入追踪。
推荐操作
- 删除两个旧加密相关脚本:
global_private_auth.js、hbe_expire.js - 其余文件原样保留。