当用户在注册的时候,注册进去存到数据库的密码是明码显示的,这样是不安全的,所以我们在注册的时候可以使用MD5的加密方式将用户的密码进行加密后存进数据库。
使用MD5要引入var crypto = require("crypto");
这个模块;
在这里将MD5封装成一个模块称为:MD5.js
/**
* Created by Danny on 2015/9/26 10:05.
*/
var crypto = require("crypto");
module.exports = function(mingma){
var md5 = crypto.createHash('md5');
var password = md5.update(mingma).digest('base64');
return password;
};
在后面使用的时候,只要require后直接调用即可。
接下来进行注册操作:
// 执行注册
app.post('/doRegister',function (req,res) {
var username = req.body.username;//获取用户输入的username
var password = req.body.password;//获取用户输入的password
password = md5(password);//加密后的password,这里可以无限的加密
db.insertOne("user",{
"username":username,
"password":password
},function (err,result) {
if(err){
res.send('-1')
}
res.send('1')
})
});
这样注册进去后 在数据显示的密码就是加密后的:
相对应的在登录的时候,把用户输入的密码按照同样的方式加密后取数据库进行比对,进行登录操作:
// 登录操作
app.post('/login',function (req,res) {
var username = req.body.username;
var password = req.body.password;
password = md5(password);//用户输入完,加密后的password
db.find("user",{"username":username},function (err,result) {
console.log(result[0].password);
if(result.length==0){
res.send('用户不存在')
} else if(result[0].password==password){ //数据库与用户输入的比对
res.send("1");
}else {
res.send('-999');
}
})
});