Php 为什么md5不再被认为是安全的?
作为一名php开发人员,我一直在使用md5哈希算法来保护密码数据并生成独特的哈希算法 然而,从过去几个月我听到传闻说md5不再被认为是安全的,我想知道为什么 PHP5.5中的密码身份验证替代方案是什么,即SHA1、password_hash()?我想知道为什么这些替代方案现在被认为是更好的选择,因为对我来说,它们中的大多数只是另一种哈希算法…因为许多网站已经证明Php 为什么md5不再被认为是安全的?,php,security,Php,Security,作为一名php开发人员,我一直在使用md5哈希算法来保护密码数据并生成独特的哈希算法 然而,从过去几个月我听到传闻说md5不再被认为是安全的,我想知道为什么 PHP5.5中的密码身份验证替代方案是什么,即SHA1、password_hash()?我想知道为什么这些替代方案现在被认为是更好的选择,因为对我来说,它们中的大多数只是另一种哈希算法…因为许多网站已经证明md5()可以逆转,你应该停止使用它! 简单地说 您可以很好地利用PHP中的5.5,而且这些都是迄今为止考虑的更好的 PHP手册中的密
md5()
可以逆转,你应该停止使用它!
简单地说
您可以很好地利用PHP中的5.5,而且这些都是迄今为止考虑的更好的
PHP手册中的密码\u hash()
的简单说明
<?php
$options = [
'cost' => 12,
];
echo password_hash("rasmuslerdorf", PASSWORD_BCRYPT, $options)."\n";
?>
编辑:
为什么不应该使用md5()
?
散列算法(如MD5、SHA1和SHA256)设计为
非常快速和高效。用现代技术和计算机
设备,它已经成为微不足道的“蛮力”这些输出
算法,以确定原始输入。因为什么
现代计算机可以很快“反转”这些散列算法,许多
安全专家强烈建议不要使用密码
散列
为什么要在PHP5.5上使用password\u hash()
?
对密码进行哈希运算时,两个最重要的注意事项是
计算费用和盐。更多的计算
哈希算法的代价越高,暴力攻击所需的时间就越长
强制输出。PHP5.5提供了本机密码哈希API,即
以安全的方式安全地处理哈希和验证密码
态度
速度很快。如果攻击者能够获得数据库的副本,那么他们可以在几小时(可能几分钟)内破解散列密码-算法越快,每秒尝试次数越多=越不安全
SHA-256/SHA-512是更好的选择,因为它们需要更长的处理时间,因此它们可能会在破坏哈希所需时间的基础上增加几年。我不知道那里有没有黑客,但我没有时间和耐心去尝试。@Fred ii-历史在哪里说为什么它不再不安全了?你没有从我上面提供的链接中读到任何内容吗?由255k会员提供。或者,您可以继续使用它,并最终自己发现。艰苦的学习是学习的一种方式。祝你好运。你也可以考虑使用<代码> BCRIPT < /代码>。我发现它对我来说非常安全。不。你的答案很好,只需添加my2cp:)@Fred ii-,这是因为
密码\u hash()
可以从PHP5.5:P中获得,而不是在之前的版本中。是的,我注意到了,即使在那时,你也不必达到这些长度,但非常好!我投票决定结束,因为“不清楚问题是什么”@ShankarDamodaran-这里似乎没有令人愉快的地方。顺便说一下,有趣的图形!lol@ShankarDamodaran:IMHO:不需要复制内容,也不需要从PHP手册中复制内容(而且你甚至错过了评分)。还有你链接的研究,我想知道它是否合适。你发布的图片,对我的口味来说是很低的。特别是由于重复的材料。
if (CRYPT_BLOWFISH == 1) {
echo 'Blowfish: ' . crypt('rasmuslerdorf', '$2a$07$usesomesillystringforsalt$') . "\n";
}