Node.js 内置的 Crypto 库 ,它提供各种加密算法,可以非常方便地让我们使用密码技术,解决应用开发中的问题。主要支持 hash(哈希),hmac(密钥哈希),cipher(编码),decipher(解码),sign(签名)以及 verify(验证)等。crypto 英文原意就是秘密成员的意思。
使用方法大概如下:
- crypto.createHash(algorithm) 指定使用的加密方式
var crypto = require("crypto");//加密
crypto.getHashes()
显示内部支持的加密方式。
- hash.update(data) 指定要加密的内容(data) 
- hash.digest("hex") 指定加密的编码方式,可以为 - hex- binary或者- base64。
举个例子:
var crypto = require("crypto");//加密
var a = crypto.createHash("md5").update("12").digest('base64');
console.log(a)
加密结果为c20ad4d76fe97759aa27a0c99bff6710 对比使用 MD5 加密工具加密的相同

二、制作 token
// //登陆
app.post("/login" , (req,res)=>{
    //处理post请求
    var form = new formidable.IncomingForm();
    form.parse(req, function(err, fields, files) {
        //判定是否正确登陆
        User.find({
            "username" : fields.username ,
            "password" : fields.password
        }).exec((err,docs)=>{
            if(docs.length){
                //登陆成功
                req.session.login = true;
                req.session.username = fields.username;
                var token = crypto.createHash("sha256").update(fields.username + fields.username).digest('hex');
                res.json({"result" : 1 , "token": token});
            }else{
                res.json({"result" : -1});
            }
        });
    });
});










