问题
数据库中保存的密码肯定是加密的,那么用redis缓存了用户数据后。登录时校验用户信息时,就要对登录的密码进行相同的加密处理。这篇文章,主要了解一些将要用到的加密或者可能用到的加密和解密方式。
场景
- 1、考虑普通的加密,用md5直接加密原始密码
简单,方便,但是容易识别,安全性不是很高。 - 2、用md5处理加盐的原始密码
比较简单,方便,但是获得比较多的加密后的密码,破解了原始密码所含的盐,也就没有安全性可言了。 - 3、那么用更复杂的方式呢
破解是更难了,但是算法对性能和时间的消耗是否值得这样去做?
我的想法是,为了安全,牺牲一些性能是值得的。对于密码的加密方式,我的想法是,动静态的盐,加上原密码用某种加密方式加密后的密文,再进行加密。而且根据原密码的某些特性,选择不同的加密方式。此处就不多说了。
加密方法的使用
- 使用lua的md5加密api
ngx.say(ngx.md5(ngx.var.xxx))
目前的阶段,我的目标是打通react+nginx+lua的登录的实现原理,这里就不在对加密继续深入了,等前后端打通,将来会写一篇深入lua加密解密的文章。在此之前,各位看官可以在网上找找资料。
网友评论