【问题标题】:Hashing Passwords Techniques in PHP [duplicate]PHP中的哈希密码技术[重复]
【发布时间】:2016-11-10 10:52:29
【问题描述】:

我在某个地方找到了这些有趣的哈希密码代码

一个是

$user_passcode = SHA1(MD5($_POST['user_passcode']));

而另一个是

$user_passcode = SHA1(SHA1(MD5($_POST['user_passcode'])));

从安全的角度来看,这种方法可以接受吗???

【问题讨论】:

标签: php


【解决方案1】:

无!您不应该尝试网站的安全性。 请勿使用未经专业人士测试的加密方法。

双重哈希只是浪费时间。这就像试图通过默默无闻建立安全

这不是最好的,但我会发布,因为它是一个内置功能,绝对比md5() 更安全。

  • 最初在寄存器使用时散列:password_hash($pass, PASSWORD_DEFAULT, ['cost' => 12]);

注意:成本是一个值,它取决于您的服务器在您登录时需要多少来匹配密码。您设置的越高,它就越困难和消耗资源服务器来匹配它。

  • 稍后登录时使用:password_verify($pass, $db_pass);

澄清:这是我所知道的最好和最安全的方法。如果有人比password_hash() 更有争议和安全,请分享。

代码

// When you store it
password_hash($pass, PASSWORD_DEFAULT, ['cost' => 12]);

// When you check if they match
password_verify($pass, $db_pass);

参考:@erickson 写了一个很棒的答案here

【讨论】:

  • "不要使用未经专业人士测试的加密方法。" 那么...没有 PHP 内置函数? ;)
  • 您知道更安全的@QPaysTaxes 吗?请分享。我也想通过password_hash() 自己使用它。
  • 这是个玩笑,因为许多 PHP 看似安全的函数实际上并不安全。 (取旧的mysql_escape_string)
  • PHP 在某些方面似乎是一种破碎的语言。
猜你喜欢
  • 2015-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-28
  • 2012-02-26
相关资源
最近更新 更多