当前位置:  开发笔记 > 编程语言 > 正文

在MySQL中使用什么函数来散列密码?

如何解决《在MySQL中使用什么函数来散列密码?》经验,为你挑选了1个好方法。

我的mysql数据库中有一个用户表,它有一个密码列.目前,我使用MD5算法来哈希用户的密码以存储在数据库中.现在我想认为我是一个安全良心的人.我在阅读MySQL文档时注意到他们不推荐使用MD5或SHA/SHA1散列方法,但是没有提供替代方法.

在MySQL中散列我的密码的最佳方法是什么?在我当前的实现中,PHP和MySQL本身都支持的功能是理想的和必要的.

谢谢!



1> jTresidder..:

不一定你不应该使用MD5,因为你不应该使用MD5,因为这会让你容易受到彩虹表攻击(彩虹表是预先计算的哈希值的表 - 如果你的密码是偶数的话)远程通用或简单,攻击者只需要查找哈希,他就知道你的明文密码.)

至少你应该为每个密码添加一个盐,这样任何现有的彩虹表都是无用的,迫使攻击者只为你的密码数据库生成一个全新的彩虹表.

更好的是为数据库中的每个密码使用不同的盐,比如它与之关联的用户名,这样攻击者甚至无法为整个数据库生成彩虹表,并且必须单独破解每个条目.

MD5也是一种非常快速的算法.速度是破解的敌人 - 生成哈希所需的时间越长,黑客每次尝试所需的时间就越长.像登录到您的站点的用户几乎不可察觉(如果有的话)每次使用新的附加盐对明文进行100次扫描这样的简单操作,但这会增加通过相同的方式强制输入密码所需的时间100次.

这里有更多详细信息:http://www.codinghorror.com/blog/archives/000953.html

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有