MD5 有冲撞问题,而且有彩虹表了,很容易逆向解析出来,SHA1 类似的也会有问题,用户登录的时候等待1秒没什么关系,此类加密算法都是通过增加计算复杂度,比如内存占用或者 CPU 时钟周期,增大攻击成本,bcrypt 被广泛使用,可以用这个加密算法。
下图是加密后的字符串,带有版本号和迭代次数(次数越高执行时间越长),可以根据计算机硬件升级提升迭代次数,保持较高的攻击成本