效果图
- md5双重加密
- sha1双重加密
- sha256双重加密
代码
var crypto = require("crypto");
//自己利用node自带的crypto模块封装出来的md5加密函数,传入初始密码,返回加密后密码
function my_md5(initPWD){
var md5 = crypto.createHash('md5');//创建哈希加密算法,后边可以是md5,sha1,sha256等
var password = md5.update(initPWD).digest('base64');
return password;
}
//测试
console.log("加密前:123456");
console.log("加密后:"+my_md5(my_md5("123456")));
补充
- 数据库不要明码保存用户数据,泄露的话后果很严重
- 加密处理后,即便黑客拿到也没用
- 不同加密算法对同一初始密码加密有差异,很明显,上述三种sha256更靠谱些
- 当然,一定程度上来说,以上加密算法都没有反破解的可能
- 哪怕只改一个字,密文都会大变。
- 不管加密的文字,多长多短,最终都是固定位数的加密结果
- 当然,总有些屌人,或者破解网站,以加密测试字典的形式将数据收录,个别的还会双层加密收录
- 举个例子,md5加密一次或者加密再加密的123456再破解网站上可以轻松破解
- 解决方式很简单,加密同时拼接字符串进去,打乱密码字典固有序列
- 举个例子,md5(md5(123456))容易破解,但md5(md5(123456)+“lengyuexin”);安全性就会比之高很多
- 很明显可以看出前后差异很大,安全性显著提高