用户密码存储的问题?hash?

做个小系统,需要用户登录,密码怎么存储呢?明文存储是不好的,但好像 hash 加密也不行,MD5 不是被爆破了吗?

programming
468 views
Comments
登录后评论
Sign In
·

不能明文,bcrypt,用这个加密,Spring Security 推荐的加密算法,通过计算复杂度延长密码加密时间,而且每个密码都有一个独立的 salt,增大彩虹表攻击的难度,可以看看这篇文章:加密技术的未来:从服务端密码存储到用户数据加密方案

·

MD5 有冲撞问题,而且有彩虹表了,很容易逆向解析出来,SHA1 类似的也会有问题,用户登录的时候等待1秒没什么关系,此类加密算法都是通过增加计算复杂度,比如内存占用或者 CPU 时钟周期,增大攻击成本,bcrypt 被广泛使用,可以用这个加密算法。

下图是加密后的字符串,带有版本号和迭代次数(次数越高执行时间越长),可以根据计算机硬件升级提升迭代次数,保持较高的攻击成本

·

hash(盐+pwd)