Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么md5不再被认为是安全的?_Php_Security - Fatal编程技术网

Php 为什么md5不再被认为是安全的?

Php 为什么md5不再被认为是安全的?,php,security,Php,Security,作为一名php开发人员,我一直在使用md5哈希算法来保护密码数据并生成独特的哈希算法 然而,从过去几个月我听到传闻说md5不再被认为是安全的,我想知道为什么 PHP5.5中的密码身份验证替代方案是什么,即SHA1、password_hash()?我想知道为什么这些替代方案现在被认为是更好的选择,因为对我来说,它们中的大多数只是另一种哈希算法…因为许多网站已经证明md5()可以逆转,你应该停止使用它! 简单地说 您可以很好地利用PHP中的5.5,而且这些都是迄今为止考虑的更好的 PHP手册中的密

作为一名php开发人员,我一直在使用md5哈希算法来保护密码数据并生成独特的哈希算法

然而,从过去几个月我听到传闻说md5不再被认为是安全的,我想知道为什么

PHP5.5中的密码身份验证替代方案是什么,即SHA1、password_hash()?我想知道为什么这些替代方案现在被认为是更好的选择,因为对我来说,它们中的大多数只是另一种哈希算法…

因为许多网站已经证明
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";
}