设置SHA256加密密码
如果本身博客中没有安装加密脚本,提前安装即可。
因为hexo-matery博客中已经安装有文章加密功能(/libs/cryptojs/crypto-js.min.js),所以博客中hexo可以实现加密功能,加密使用SHA256
加密,所以在加密前需要先将你的密码转换成SHA256格式
,至于SHA256加密,请自行网上搜索在线生成,例如: http://www.ttmd5.com/hash.php?type=9
输入你设置的密码,生成后复制下来。
指定页面开启密码功能
比如在工资清单页面设置密码,则找到根目录下工资清单文件夹下的index.md页面添加password选项。
---
title: 工资清单
date: 2021-10-03 20:04:51
type: "salarylist"
layout: "salarylist"
password: ""
---
将刚刚生成的密钥粘贴到PASSWORD中。
增加配置项
在主题配置文件中加入密码配置项,方便以后设置开启或关闭
# 工资单加密,以后不需要则将enable选为false
SalaryVerifyPassword:
enable: true
promptMessage: 该工资清单已加密,请输入密码访问
errorMessage: 密码错误,将返回主页!
插入加密代码
在需要设置的页面(主体目录下/layout/salarylist.ejs,我的工资页面对应的ejs是salarylist.ejs 所以是找到它)中最前面插入代码:
<% if (theme.SalaryVerifyPassword.enable) { %> <script src="<%- theme.libs.js.crypto %>"></script> <script> (function() { let pwd = '<%- page.password %>'; if (pwd && pwd.length > 0) { if (pwd !== CryptoJS.SHA256(prompt('<%- theme.SalaryVerifyPassword.promptMessage %>')).toString(CryptoJS.enc.Hex)) { alert('<%- theme.SalaryVerifyPassword.errorMessage %>'); location.href = '<%- url_for("/") %>'; } } })(); </script> <% } %>
切记,如果需要改动里面的变量名称,配置项中的相应名称需保持一致,否则不生效。