Hexo 使用通行密钥对文章加密
Hexo 中主流使用 hexo-blog-encrypt 插件可以对文章进行加密。这种方法通过密码实现。相比更为简单的前端 JavaScript 密码比较验证,该方法的加密流程如下
- Markdown 文章头部密码 → PBKDF2 派生密钥 → AES-256-CBC 加密原始内容 → 生成 HMAC 完整性校验 → 输出加密的 HTML
从而实现使用加密厚的内容替换原始内容,防止通过简单 JavaScript 手段直接跳过密码验证。同时解密过程则是
- 用户输入密码 → PBKDF2 派生密钥 → 验证 HMAC → AES-256-CBC 解密 → 获取原始 HTML 内容 → 渲染文章内容