密码存储,hash() 与 sha-512 或 crypt() 与河豚 (bcrypt)?

2023-12-09

这是我当前在 PHP/SQL 项目中的密码哈希过程...

  • 从 /dev/urandom 中获取 512 位的每用户盐,除了最终哈希值之外,还存储在用户的数据库记录中
  • 从 /dev/urandom 中取出存储在文件系统中的 512 位“pepper”。这是一个 每个应用程序都是恒定的,并且对于每个用户来说都是相同的
  • Then hash('sha512', $password.$salt.$pepper, TRUE)

哈希和盐以二进制形式存储在数据库中,主要是出于习惯。我认为这在安全性方面没有任何区别。如果有的话,它对于 SQL 备份来说稍微不太方便,并且使得 PHP 代码appear稍微复杂一些。

Is hash()SHA-256 或 SHA-512 通常被认为已被 bcrypt 取代?
我相信 SHA-2 (256/512) 仍然被认为是加密安全的,而且我可能过度使用了熵位。与攻击者从数据库转储中逆向工程 SHA-2 哈希相比,我的代码中的缺陷更有可能导致问题。

但我应该更新我的方法来使用crypt()用 CRYPT_BLOWFISH 代替(我相信这被称为 bcrypt,河豚在技术上是一种密码而不是散列算法)?
即使只是作为未来的最佳实践?

我并不特别关心算法的计算费用(在合理范围内)。这只会在创建帐户、更改密码或登录时进行哈希然后比较时成为一个因素。这些活动只占页面浏览量的一小部分。我想在某种程度上越慢越好,如果它使服务器更难生成,那么它将使攻击者的工作变慢以进行暴力破解。

干杯,B


如果你可以等到 php 5.5,将会有一些内置的有用功能:

https://gist.github.com/3707231

在那之前,请使用 crypt - 您可以查看新函数的前向兼容端口:

https://github.com/ircmaxell/password_compat

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

密码存储,hash() 与 sha-512 或 crypt() 与河豚 (bcrypt)? 的相关文章

  • 控制器 HMVC 内的 CodeIgniter 负载控制器

    我在用着http github com philsturgeon codeigniter template http github com philsturgeon codeigniter template 对于模板 我尝试将其他控制器视图
  • IMAP 和 PHP - 从已发送文件夹和收件箱文件夹中获取所有电子邮件

    我正在尝试获取接收和发送的所有电子邮件 并使用 PHP 将其写入 mySQL 数据库 我使用的主机名是 hostname imap gmail com 993 imap ssl INBOX 它仅引用收件箱 并成功抓取收到的电子邮件 为了抓取
  • 动态重新定义 PHP 类函数?

    我试图弄清楚如何动态导入大量 PHP 类函数 例如 class Entity public function construct type require once type functions php person new Entity
  • 使用 Laravel Socialite 登录 facebook

    然而 我是 Laravel 的新手 我正在遵循以下教程http www codeanchor net blog complete laravel socialite tutorial http www codeanchor net blog
  • Ace Editor 自动完成和多种语言

    如何为 Ace 编辑器创建自动完成功能以及如何突出显示 php 中的 html javascript 和 csshttp ace ajax org http ace ajax org
  • 使用 .htaccess 进行 PHP 设置时出现 500 内部服务器错误

    当我使用时 htaccess对于以下 PHP 设置 我得到500 Internal Server Error访问网站时 中的代码 htaccess file php flag display errors off php flag log
  • php / phpDoc - @return $this 类的实例?

    如何在 phpDoc 中将方法标记为 返回当前类的实例 在下面的示例中 我的 IDE Netbeans 将看到 setSomething 始终返回foo object 但如果我扩展对象 情况就不是这样了 它会返回 this 在第二个示例中是
  • Java:BCrypt 的用途很好吗?

    我想知道我当前的 BCrypt 实现是否正确 我知道我没有使用BCrypt checkpw 这可能会导致问题 所以这是我在这里验证的主要原因 Hasher java容器类 abstract public class Hasher publi
  • 根据product_id获取magento产品的浏览次数

    我想在 Magento 的类别列表页面上显示查看计数 这些数据看起来过去可以通过 reports product collection 访问 但我找不到正确访问它的方法 我基本上想提供一个产品 ID 并获取返回给我的所述产品的观看次数 您可
  • 重新加载页面时删除哈希值?

    我使用哈希来切换我的图像滑块 当我重新加载页面并且哈希值设置为 e h 3 没有图片 当图库在几秒钟后自动滑动时 它显示下一个 所以几秒钟内什么也没有 有没有办法在加载页面时检查哈希并将其删除 我只想关心那些用散列为页面添加书签的人 问候
  • 在运行之前可以检查 imagecreatefromjpeg 是否会导致内存耗尽致命错误吗?

    我已经对此进行了一些搜索 并且我知道不可能从内存耗尽的致命错误中恢复 我有一个运行 imagecreatefromjpeg 的脚本 我尝试捕获异常 我尝试使用 运行该函数 然后检查返回值是否为 null 或 false 我尝试使用 die
  • 软删除最佳实践(PHP/MySQL)

    Problem 在处理产品和订单的 Web 应用程序中 我想维护前员工 用户 与他们处理的订单之间的信息和关系 我想维护过时产品和包含这些产品的订单之间的信息和关系 然而 我希望员工能够整理管理界面 例如删除前员工 过时的产品 过时的产品组
  • SQL 查询结果为字符串(或变量)

    是否可以将SQL查询结果输出到一个字符串或变量中 我的php和mysql不好 假设我有数据库 agents 其中包含列 agent id agent fname agent lname agent dept 使用此查询 sql SELECT
  • Chart.js - 使用 mysql 和 php 从数据库获取数据

    我正在尝试将静态数据转换为使用数据库结果 我将使用MySQL and PHP 示例代码 var randomScalingFactor function return Math round Math random 100 var lineC
  • websockets 如何处理同一浏览器的两个选项卡

    I have 1 个 PHP 服务器 提供 http 请求 和 1 node js 发布更新的数据消息 每个连接都带有 websocket php 服务器设置其 cookie 在一个浏览器中 此 cookie 可在所有选项卡中使用 当浏览器
  • 如何处理致命错误:cURL错误7:无法连接到xxxx端口443

    我有一个连接到第三方 API 的脚本 它是并且应该在 24 7 不间断循环上运行 我在重新启动循环之前在最后使用睡眠 问题是 有时第三方 API 会被拒绝 或者连接会因以下错误而中断 致命错误 未捕获的异常 GuzzleHttp Ring
  • PHP 使用主键和辅助键对多维数组进行排序[重复]

    这个问题在这里已经有答案了 如何按主键和辅助键对多维数组进行排序 例如 假设有以下数组 result array result 0 prio 1 result 0 date 2010 02 28 result 0 post February
  • 如何使用 PHP 将字符串按大写字母分解?

    我有一个字符串 CamelCaseString 我想对大写字母进行explode split 或一些更好的方法来将该字符串分解为单个单词 最简单的方法是什么 解决方案更新 此链接指向一个略有不同的问题 但我认为答案通常比本页当前问题的答案更
  • 如何缩短 PHP if 语句?

    我有一个 if 语句 我需要将单个字符串与许多不同的选项进行比较 我在下面发布的代码非常清楚地表明了我的意思 我知道有两种方法可以做到这一点 但另一种甚至更长 那么 是否有任何函数可以以更短的方式实现类似的功能 我的要求可能看起来很愚蠢 但
  • mysql_query 保留返回时在表中创建的数据类型?

    我在mysql中有一个表 CREATE TABLE user id INT name VARCHAR 250 我查询表 result mysql query SELECT id name FROM user 我收集结果 while row

随机推荐