文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
12.4 密码加密存储方式
从各大社工库交易论坛来看,目前每天都有不少网站被拖库,其中不乏行业影响力排行靠前的企业网站,总计公开的数据库达十亿条以上,如图 12-6 和图 12-7 所示。
图 12-6
图 12-7
密码安全的存储成为了保障用户信息安全首要关注的事情,据笔者的统计分析,泄露的数据有 30%未加密,60%以上采用的 MD5 和 sha1 类型的哈希算法存储,由于普通用户的密码普遍不会很复杂,保守估计 90%以上的用户密码可以轻松被解密,有多家网站专门提供密码破解的服务,像 cmd5.com、xmd5.org 等,其中 cmd5.com 更是号称破解成功率高达 95%,既然用户自己不会设置高强度的密码,那服务方应该想办法解决这个问题,一是采用高强度安全环境保存,数据仍然是普通 MD5 等算法保存,不过谁也无法保证 100%安全,这种做法看起来有鸡肋的感觉,另外一种做法就是为密码加一个极其复杂的固定字符串,再进行 MD5 或者 sha1 算法进行保存,这样通过枚举的方式就很难解密,举一个例子,代码如下:
<?php $password=$_POST['password'] ; $safestr = "0123456789abcdefghijklmnopqrstuvwxyz~ ! @#$%^&* () _+}{.| ; " ; $salt="" ; for ( $i=0 ; $i<6 ; $i++ ) { $salt .= $safestr[rand ( 0 , 54 ) ] ; } $password=md5 ( md5 ( $password.'*5t42g^_^$$FFSD' ) .$salt ); echo $password ;? >
将生成的 salt 存入数据库中,后期验证过程中将 salt 取出重新用 MD5 运算一下,对比结果即可知道密码是否正确。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论