Closed xiazeyu closed 5 years ago
See https://github.com/brix/crypto-js/issues/50
AES 加密的问题,如果单纯在文章中引入新的 tag 又有可能引发样式异常问题。也是很头痛啊,现在只好在 hexo g 的时候加个 warning 详情见 #80 。
看起来一开始是用空做解密成功与否的判断的。
https://github.com/MikeCoder/hexo-blog-encrypt/commit/d43bb94e15c9445edf983538deff0f25e725ff4f 我先去找找API提供的解决方案 实在不行就加一个MD5校验来判断
空字符串的MD5:d41d8cd98f00b204e9800998ecf8427e
关于空内容,我的想法是这种情况出现的概率太小,除非是有人特地对空内容加密,有可能仅仅只是为了恶作剧?或者是测试插件。
如果是前者的话,我们还可以引入一个新的配置叫:wrong_password_message
。用来展示当密码错误时弹出的内容。这个配置还可以做成字符串数组,每次随机挑一个。
如果是后者,我们可以在:https://github.com/MikeCoder/hexo-blog-encrypt/blob/45d38a177de9704c04c3ab66a42adabf3ad016ab/index.js#L84 这里给 content 直接插入一段话,比如 Empty 之类的。
如果浏览器支持的话,并且测试ok,可以考虑替换掉 CryptoJS。 用 CryptoJS 的本意就是省去了去测试兼容性的工作。
emm对于空内容 我查阅了你发的https://github.com/MikeCoder/hexo-blog-encrypt/issues/95#issuecomment-523275009
我觉得空内容报错仅仅是以前的历史遗留(以前用来检测密码是否错误..),其实是可以直接删除那一段代码的,我们换一种方法检测密码是否正确即可。这样优化了以后,空内容就可以接受了。
你是想在解密之前,通过类似 MD5, SHA1 这种方式先匹一把密码吗?
不太建议把密钥用其他形式存储在页面上,摘要算法安全性太低,用加密算法的话就变成了死循环。
加密两个字段 data和与之对应的hash 同时解密这两个字段 如果解密后的hash为空 失败 如果解密后的hash与解密后的data不匹配 失败
我稍后再确认一下。好像AES本身无法判断密钥是否正确
还有一个 你觉得用onchange来跑实时解密的想法如何/滑稽
说到 onchange 我仿佛已经听到了风扇声。
同时加密两个可行,直接把 data 的 hash 写到一个 display:none
的 div 里面,也不影响样式也不影响现有的模版。
可以把密文放到script里,这样就不会被generator误识别 最近还在学加密的kdf, hash, cipher算法..所以可能需要鸽几天
这个先 close, 以新的 issue 为准。
RT