【Koa2】MD5加密

MD5:

  • MD5信息摘要算法(英语:MD5 Message-Digest
    Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash
    value),用于确保信息传输完整一致。

加盐:

  • 盐被称作“Salt值”,这个值是由系统随机生成的,并且只有系统知道。即便两个用户使用了同一个密码,由于系统为它们生成的salt值不同,散列值也是不同的。

在koa2项目开发中,用户的密码需要进行加密处理,并加盐。

如何实现盐值的随机呢?

Uuid:

  • UUID是国际标准化组织(ISO)提出的一个概念。UUID是一个128比特的数值,这个数值可以通过一定的算法计算出来。为了提高效率,常用的UUID可缩短至16位。UUID用来识别属性类型,在所有空间和时间上被视为唯一的标识。

使用:npm install node-uuid

 //生成uuid的方法
function generateId() {
    return uuid.v4;
}

为每个用户生成一个uuid,将uuid作为盐值对用户密码进行加密

使用:npm install md5

封装MD5

var md5 = require('md5')

exports.MD5 = function(val,solt){
   return new Promise((resolve, reject) => {
      var passSolt = md5(md5(val) + solt);
      resolve(passSolt);
      })
}

使用封装函数进行加密:

//result.solt 盐
let md5pass = await md5.MD5(password,result.solt)

加密完成以后将盐值和加密以后的密码同时存入数据库中,以便进行验证:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43352901/article/details/107572184