MD5加密注册登录

当用户在注册的时候,注册进去存到数据库的密码是明码显示的,这样是不安全的,所以我们在注册的时候可以使用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')
   })
});

这样注册进去后 在数据显示的密码就是加密后的:

MD5加密注册登录_第1张图片
Paste_Image.png

相对应的在登录的时候,把用户输入的密码按照同样的方式加密后取数据库进行比对,进行登录操作:

// 登录操作
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');
        }
    })
});

github地址:https://github.com/17868804701/NodeMD5.git

你可能感兴趣的:(MD5加密注册登录)