栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SHA1 vs md5 vs SHA256:哪个用于PHP登录?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SHA1 vs md5 vs SHA256:哪个用于PHP登录?

都不行
您应该使用

bcrypt
。您提到的散列均经过优化,可在硬件上快速便捷地使用,因此破解它们具有相同的品质。如果您别无选择,至少要确保使用长盐并多次重新哈希。

在PHP 5.5+中使用bcrypt

PHP5.5提供了用于密码哈希的新功能。这是在现代Web应用程序中存储密码的推荐方法。

// Creating a hash$hash = password_hash($password, PASSWORD_DEFAULT, ['cost' => 12]);// If you omit the ['cost' => 12] part, it will default to 10// Verifying the password against the stored hash  if (password_verify($password, $hash)) {    // Success! Log the user in here.}

如果您使用的是旧版本的PHP,则确实应该升级,但是在您这样做之前,您可以使用password_compat公开此API。

另外,请让我们

password_hash()
为您生成盐。它使用CSPRNG。

bcrypt的两个警告

  1. Bcrypt会自动截断任何长度超过72个字符的密码。
  2. Bcrypt将在任何
    NUL
    字符后截断。

(这里有两个警告的概念证明。)

在通过bcrypt运行密码之前,您可能会通过预先散列密码来解决第一个警告,但这可能会使您的应用程序先运行到第二个。

不用编写自己的方案,而使用由安全专家编写和/或评估的现有库。

  • ZendCrypt
    (Zend framework的一部分)提供
    BcryptSha
  • PasswordLock
    与相似,
    BcryptSha
    但它还使用认证的加密库加密bcrypt哈希。

TL; DR - 使用bcrypt。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/465774.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号