对于密码的话,一般使用md5签名转成唯一的32位字符。

md5不管文件有多大,都是只会生成32位,并且同一个文件,签名后结果都是相同的,而且这个结果不能反向破解,只能一个个的试,这种也称为暴力破解。

暴力破击可以破解相对比较简单的密码,比如:123456 这种纯数字的。

而且就算我们对同一个密码做两次md5,第一次生成的md5,第二次将第一次md5再次签名,一样也容易被人暴力破解。

所以一般在第二次加密的时候,使用一段随机的字符,长度无所谓,中文都可以。

libs/md5.js

md5方法需要引入原生加密模块crypto。

const crypto = require("crypto");

module.exports = function (value) {
  let md5 = crypto.createHash("md5");

  md5.update(value);

  return md5.digest("hex");
};

引入后,由于官方的加密有很多种,我们需要创建其中的md5

然后通过update将值传入,再通过digest返回签名后的结果。

如果digest里面没有传入参数hex,它将会返回一个buffer,hex表示返回一个十六进制的字符。

针对密码加密

我们创建一个随机字符丢入config.js里面

md5_key: "就撒看到股价是给大家哈师大卡的健康sjkdfajkda(lkahkdas)aldha",

libs/password.js

const md5 = require("./md5");
const {
    md5_key
} = require("../config");


module.exports = function(value) {

    return md5(md5(value) + md5_key)

};

返回二次加密的结果即可。

分类: Node 标签: 加密nodekoa

评论

暂无评论数据

暂无评论数据

目录