阅读 219

koa [6] 密码加密(kocom密码锁使用说明)

密码加密

我们之前存入数据库中的密码是没有经过加密的。这篇文章我们对密码进行一下加密处理。其实如果要求不是很高的话,可以使用md5进行加密。

我们这里使用另一个库bycrptjs,???? 是bycrptjs,在npmjs官网还有一个bycrpt,二者区别是bycrptjs进过了c++的编译。不需要其他的依赖,而bycrpt需要其他依赖。

最好对应项目代码进行学习:持续更新中

bycrptjs

npmjs中 bycrptjs 相关内容

安装

npm i bycrptjs 复制代码

文档

可以看到它分为同步 和 异步。To hash a password:生成密码。To check a password:去验证这个生成的密码 image.png

image.png 这段生成密码的代码中 genSaltSync 方法,我们称它为 “加盐”。 它的加密方式大概是:

[密码:abc]-加上字符->[123abc]-通过算法加密一次->[具体变成什么样我们看不到]--再进行加盐-->   下面参数中的10就是进行了十次的加盐。

var bcrypt = require('bcryptjs'); var salt = bcrypt.genSaltSync(10); var hash = bcrypt.hashSync("B4c0//", salt) 复制代码

写到哪里?

按照我们的封装,在user.router.js中经过校验之后才会进入到register,因此我们想要加密就需要在进入register前,进行加密。我们将加密也写到 处理中间件的文件中 :user.middleware.js

user.route.js

const  {userValidator,verifyUser,cryptPassword} = require('../middleware/user.middleware') // 注册接口 先交给userValidator去验证,验证通过再交由register router.post('/register',userValidator,verifyUser,cryptPassword,register) 复制代码

user.middleware.js

const cryptPassword = async (ctx, next) => {     // 解构出密码     const {password} = ctx.request.body      const salt = bcrypt.genSaltSync(10)     // 保存的是密文     const hash = bcrypt.hashSync(password,salt)      ctx.request.body.password = hash     await next() } // 导出 module.exports = {     userValidator, verifyUser, cryptPassword } 复制代码

然后我们测试一下,注册一个新用户

image.png 可以看到数据库的相应数据第密码已经经过了加密处理

image.png

密码的解密我们在下一篇文章再说,也就是在登录时进行解密。

 伪原创工具 SEO网站优化  https://www.237it.com/ 

作者:csdn来挖墙脚
链接:https://juejin.cn/post/7035460395921834020


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐