问题标签 [php-password-hash]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
6052 浏览

php - 旧 php 版本的 password_compat

PHP 5.5 将支持密码功能password_hash()password_verify(). 还有一个文件可以在 >5.3.7 中添加此功能。

我的问题是我目前正在运行 debian 包 5.3.3-7+squeeze14。

有没有办法让这个函数在这个旧的 PHP 版本中可用?

0 投票
2 回答
7349 浏览

php - 在 PHP 5.5 中生成密码哈希并设置成本选项

我知道 PHP 5.5 处于 alpha 阶段,但我正在制作的这个类只是提前制作,以通过使用 function_exists() 来利用它的散列功能。

我查看了password_hash文档。第三个参数是 $options 目前支持两个选项,'salt' 和 'cost'。

它声明如下:

cost,表示应该使用的算法成本。这些值的示例可以在 crypt() 页面上找到。

当我转到 crypt() 页面时,它提供的文档是:

使用盐的河豚散列如下:“$2a$”、“$2x$”或“$2y$”、两位数的成本参数、“$”和字母表中的 22 位数字“./0-9A-Za” -z”。在 salt 中使用超出此范围的字符将导致 crypt() 返回零长度字符串。两位数的成本参数是底层基于 Blowfish 的散列算法的迭代计数的以 2 为底的对数,必须在 04-31 范围内,超出此范围的值将导致 crypt() 失败。5.3.7 之前的 PHP 版本仅支持“$2a$”作为 salt 前缀:PHP 5.3.7 引入了新前缀以修复 Blowfish 实现中的安全漏洞。请参阅 » 本文档以获取有关安全修复的完整详细信息,但总而言之,开发人员仅针对 PHP 5.3。

我似乎无法理解这一点。它说 PHP 5.3.7 和更高版本应该使用 $2y$,但是我用什么成本值来获得那个,它是最好的选择吗?他们提供的示例使用了 7 的值,但根据上述它可以上升到 31,使用say 4 与 say 31 有什么区别?

0 投票
2 回答
839 浏览

php - 密码哈希 API 查询

所以我正在使用新的 PHP 5.5 Password Hashing API,但我不确定我是否正确理解了这一点。

我试过自动重新散列每次登录,有时我失败了,即使散列结果是一样的,我觉得我做错了什么。

这可能是我可能弄错了查询函数,因为当我检查 phpMyAdmin 时哈希甚至没有改变。

在这里您可以找到所有功能。

0 投票
4 回答
46695 浏览

php - 使用 PHP 5.5 的 password_hash 和 password_verify 函数

假设我想为用户存储密码,这是否是使用 PHP 5.5 的password_hash()功能(或 PHP 5.3.7+ 的此版本:https ://github.com/ircmaxell/password_compat )的正确方法?

然后我会这样做:

插入数据库。

然后验证:

0 投票
1 回答
48 浏览

php - 为什么我的登录不起作用?我的哈希方法是否有错误/是否正确?

登记:

确认:

忽略我使用的即将弃用的方法,我会尽快更改。

为什么这不起作用?它检测到用户名的密码错误。

我正在使用这个库来允许以前版本中的 PHP 5.5 函数:https ://github.com/ircmaxell/password_compat

(是的,我可以使用该功能,我使用的是 PHP 5.3.15)

0 投票
2 回答
7818 浏览

php - 使用带有 phpto 散列密码的 Bcrypt 不起作用

我正在使用带有 php 的 Bcrypt 来获取一个安全的散列密码,以便在注册时提交到数据库密码得到散列但在登录时系统显示 2 密码不匹配任何人都可以帮助我??????? ?

我只需要从 password.php 文件

  • 密码哈希函数
  • 密码验证功能

密码.php

注册.php

登录.php

0 投票
3 回答
4246 浏览

php - password_hash 中的默认算法是什么

阅读有关 PHP 5.5 的新password_hash函数的文档,我想知道默认算法是什么:

关于它的文档没有澄清这一点:http ://www.php.net/manual/en/password.constants.php

0 投票
2 回答
1760 浏览

php - hash_pbkdf2 vs password_hash PHP函数

由于 PHP 5.5.0 现已推出,

  1. 哪一个更好用(安全性、便携性、面向未来)?

  2. 它说 password_hash() PASSWORD_DEFAULT可能会在每个完整版本(+1.0 或 +0.1)中更改,那么我们如何使用以前的 DEFAULT 方法散列密码和新的默认值?这是否意味着在用户更改密码之前,数据库中已散列密码的 PHP 5.5 脚本将无法在 PHP 5.6 上运行?COST变化怎么样(我想知道服务器是否可以更新到 php v5.6,或者网站管理员可能会更改托管服务提供商(然后为更弱/更强的服务器更改 COST),对当前用户没有任何问题)

  3. 我们应该等待一些更新还是它们已经可以在 5.5.0 中安全使用

  4. 我们是否还应该使用 PHPass 等框架,或者这些新的 PHP 5.5 功能就足够了和/或更多的未来证明?

0 投票
2 回答
1108 浏览

php - 如何在 Zend_Auth_Adapter_DbTable 中使用 php 5.5 密码 API

到目前为止,我已经以纯文本形式存储了所有密码,因为该站点尚未上线,我决定等待新密码 api

我有此代码用于纯文本密码:

根据文档,我应该实现自己的适配器,并且可能只是更改以使用 password_verify()。

我在这里错过了一切如何协同工作的大图。

我的问题是:

  1. 我应该修改女巫对象吗?$authAdaper或者$auth

任何高级(或低级:D)示例代码将不胜感激。

最好的亚当

0 投票
3 回答
169 浏览

php - 无法验证散列密码

我正在使用 SHA-512 加密密码。我认为我所做的一切都是正确的(甚至复制在其他地方成功的代码),但是每次我尝试输入密码时,它都无法匹配我存储在数据库中的密码。

我已经验证了以下明显的潜在问题并将其排除为原因:

1)我的数据库中存储了一个加密密码

2) 我能够检索此密码并将其存储在变量 $db_password 中

3) 变量 $username 和 $currentPlaintext 确实具有我的 ajax 函数调用传递的正确值。

那么,为什么这不起作用?我错过了一些明显的东西吗?谢谢!

编辑:感谢到目前为止的评论。澄清一下,据我了解 crypt() 函数,crypt的第二个参数实际上是存储在db中的整个字符串。该字符串不仅包括哈希密码,还包括算法、盐值和哈希轮数。crypt() 函数应该从该字符串中提取盐值,然后将其应用于散列第一个参数。然后将结果与之前的散列密码进行比较。这就是为什么这很令人困惑。我不必给它一个盐值——盐就在数据库中。我误解了这个功能发生了什么吗?

我最初使用以下代码对密码进行哈希处理: