nodejs给密码加密 报错 ,找bug全过程。

一、使用md5对密码加密

1.1 将加密内容抽取为独立文件:

 1.2 在组件中使用md加密:

 1.3 上图对密码加密是封装成中间件的,所以还要在路由中使用该中间件:

 1.4 使用postman发起请求:(报错)

 1.5 对错误进行处理:

  •  以为是md5加密的方法错了,但是看网上都是这样子加密的,,实在是不知道哪里错了。。
  •  通过debug来排查错误,没查出来。。。
  • 决定换一种加密方法,下面使用bcrypt进行加密。

二、使用bcrypt对密码进行加密

2.1 加密方法:

2.1 还是报错,这是想单独执行一下加密文件,先确定一下是加密逻辑的错误还是其他逻辑错误。

  • 结果:两种加密方法都运行成功!!!好吧,原来加密逻辑没有错!
  • 虽然证明md5本身没有问题,省的换来换去,还是接着使用bcrypt进行加密了。

 2.2  突然想起,感觉应该使用异步操作,对于获取加密后的 密码, 然后就将加密内容换成异步的了:(en~我可太缺乏探索精神了555,没有深究是否必须要异步)

 2.3  在页面中确实可以拿到加密后的密码,但是,还是报错500!

  •  下面是密码加密的中间件:
  • 为什么使用一堆 console.log来调试,而不用debug呢——因为debug总是走不到我希望它进入的那一步【冒冷汗】~~~

 2.4 至此,在上图中每一步都可以获得加密后的密码,但是,发起请求还是500!!!

三、一步步回溯,顺着代码倒推

  • 项目中采用分层架构,代码逻辑是一层层嵌套的。决定一层层刨析!!!【真~洋葱模型~~】
  • 代码结构如下图:

  •  下面对第5步代码进行分析:
  • 突然想起来,加密后的密码!变长了!!!MySQL中密码字段长度不够!!!
  • 加长密码长度,成功了!!!

 四、总结

1. 还有一些细节上的坎坎坷坷,这里没有写。最主要的原因也并非字段长度不够。因为前面在抽离的加密函数和 加密中间件之间一直没打通。打通之后意识到字段不够也就是顺藤摸瓜了。

2. 不过,还是得缕清逻辑,写想清楚再下手。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值