var crypto= require('crypto')//crypto为node.js加密模块
//生成随机字符串
function randomString(len) {
len = len || 32;
var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'; /****默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/
var maxPos = $chars.length;
var pwd = '';
for (i = 0; i < len; i++) {
pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
}
return pwd;
}
function hashvalue(str){
var text = str;
var hasher=crypto.createHash("md5");
hasher.update(text);
var hashmsg=hasher.digest('hex');//hashmsg为加密之后的数据
return hashmsg;
}
var saltvalue;
function make_password(password){
//密码哈希值
var salt=randomString(32);
saltvalue=hashvalue(salt);
var hashmsgPassword=hashvalue(password);//hashmsg为加密之后的数据
str=saltvalue+'$'+hashmsgPassword;
return str;
}
console.log("make_password中加盐后hash值"+make_password("hello"));
function check_password(password,inputPassword){
var hashmsginputPassword=hashvalue(inputPassword);
str1=saltvalue+'$'+hashmsginputPassword;
if (str1==str) {
return true;
}else{
return false;
}
}
console.log("check_password返回值:"+check_password("hello","hello21"));