问题标签 [phpass]

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 回答
700 浏览

php - phpass 返回不同的结果

我只是将我的项目从 localhost 放到我的主机上,并使用相同的 (phpass) 函数收到不同的结果,并且返回的字符串的长度也不同。(顺便说一句,一切都在本地主机上运行)

所以同样的函数在线时返回false。我想知道问题可能是什么。

结果如下:

输入:12345

  • 本地主机:$2a$08$t5joFUIbETHylj/IyUVy7.WzMZm8fmKjsy0kZc/YxgqzkbYQWnlre
  • 主机:$P$9QiKVfJzpRzoToBCJg8FeaDIfcAJJ61

编辑:我打开了 TRUE 标志以使密码可移植,但它似乎仍然不起作用。

编辑 2:不适用于 php 4 或 5,我确实打开了便携式模式!

0 投票
2 回答
3944 浏览

wordpress - 使用 PHPPass 生成相同的密码哈希

我正在将网站从 Wordpress 转换为在 Codeigniter 中开发的自定义 CMS。有人告诉我,Wordpress 使用 PHPass 来散列他们的密码,所以我使用 PHPass 库(如本网站所述)试图无缝地转换用户,而无需他们重置或更改密码。

我让它在我的应用程序中运行良好,但它没有生成与 Wordpress 使用的相同的密码哈希。我假设它与某种站点密钥有关,但我没有任何运气。如何让 PHPPass 生成相同的密码哈希?

0 投票
1 回答
696 浏览

codeigniter - 使用 Phpass 和 Codeigniter 读取文件

在我的 CI 控制器上使用 Phpass 0.3 时出现此错误

消息:is_readable() [function.is-readable]:open_basedir 限制生效。文件(/dev/urandom)不在允许的路径中:(/home/:/usr/lib/php:/usr/local/lib/php:/tmp)

文件名:phpass-0.3/PasswordHash.php

有人能告诉我问题是什么吗?

0 投票
4 回答
10561 浏览

php - 我可以使用有效的 open_basedir 访问 /dev/urandom 吗?

我想在 Codeigniter 中使用 phpass-0.3,但由于以下原因出现以下错误open_basedir

遇到 PHP 错误
严重性:警告
消息:is_readable() [function.is-readable]:open_basedir 限制生效。文件(/dev/urandom)不在允许的路径中:(/home/phginep:/usr/lib/php:/usr/local/lib/php:/tmp)
文件名:phpass-0.3/PasswordHash。 php
行号:51

以下代码:

我能做些什么来解决这个问题吗?

0 投票
1 回答
145 浏览

php - PHP - phpass 0.2 的麻烦

当我的用户在注册和登录时输入密码时,我正在使用 phpass。当我在我的 Mac 上本地工作时它正在工作。

但是当我在线时散列密码时,就像它以错误的方式散列一样。

我已将本地数据库导入在线数据库。我在本地时生成的密码在我在线时非常有效。

所以.. 当我在线使用 phpass 时,就好像出现了完全错误的情况。

我这样使用它:

这会给我类似的东西:

当我检查密码时,它是这样的:

我完全不知道出了什么问题。我希望SO上的某个人也有同样的问题。

0 投票
1 回答
557 浏览

database - Codeigniter TankAuth:如何将 phpass 哈希便携式设置为 FALSE 的数据库移动到新服务器

TankAuth 使用 PHPass 进行密码散列,便携模式默认设置为 FALSE,这让 PHPass 使用 bcript 代替,因为便携散列不会在其散列中存储盐。

但是,如果我们想将数据库移动到不同的服务器,我们需要在将记录添加到表之前将其设置为 TRUE,以避免以后重新生成密码。显然,保持可移植哈希为 TRUE 会使加密的密码非常不安全

有没有更好的解决方案使用 tank auth 对密码哈希进行 bcrypt 并且跨服务器轻松进行数据库迁移?

0 投票
2 回答
1386 浏览

php - phpass CheckPassword 使用不同的盐?

我有一个带有用户区和管理区的站点。在管理区域,我有一个用于创建用户的页面和一个用于创建管理员的页面。在用户和管理员页面上,我使用以下代码对密码进行哈希处理:

对于用户页面,检查密码的代码是:

这工作得很好。我的用户密码经过哈希处理,它正确地检查了密码。我在管理员登录页面上使用了相同的代码,但是它不起作用。它从数据库中提取正确的信息,但是当使用 CheckPassword 时,密码不匹配。我认为这可能与加盐有关,因为密码的开头部分似乎是相同的。

顺便说一句,我使用的是 PHP 4.3。

0 投票
1 回答
677 浏览

codeigniter - phpass 不工作

我在创建帐户时对密码进行哈希处理,并且它可以工作(密码设置为 VARCHAR(60))但是当我尝试这样做时:

它总是返回假。关于为什么会这样的任何想法?(我提供的密码是正确的)

0 投票
1 回答
213 浏览

php - 密码哈希、登录时更新 Salt 和哈希以及 PHPass

我记得读过一个方案,其中检查密码的过程是这样的:

  1. 在数据库中给定(哈希,盐),
  2. 带盐的哈希密码以检查哈希,
  3. 以旧哈希为 salt 的哈希密码,
  4. 在数据库中存储(新哈希,盐又名旧哈希)。

我找不到原始来源。无论如何,我不明白

  1. 使用旧哈希作为盐有什么好处(而不是使用随机盐),

  2. 该方案的总体优势是什么(使彩虹表攻击更加复杂?),以及

  3. 如果有优势,人们将如何使用 PHPass 应用该方案,因为盐似乎是在“内部”PHPass 中管理的......

直觉上,我认为这个方案充其量不会做任何事情,或者在最坏的情况下会恶化安全性(由于对过去值的依赖),但密码安全性是我不相信我的直觉的一个领域。请赐教。

编辑:

我问的是在每张支票上重新散列密码。这些类似的问题确实回答了第一个问题——使用哈希作为盐是没有用的——但不是在每次检查时重新哈希是否有用:

0 投票
3 回答
949 浏览

php - 正确加盐和使用 PHPass

很长一段时间以来,我一直在使用 PHPass 对我的密码进行哈希处理。我承认仍有一些我不完全理解(或忽略)正确散列密码的事情,所以今天我正在审查我能找到的所有信息。

回顾 PHPass 文档,我已经进入了这个:

除了实际的散列,phpass 在新密码或密码被散列时透明地生成随机盐,并将散列类型、盐和密码拉伸迭代计数编码到它返回的“散列编码字符串”中。当 phpass 针对存储的散列验证密码或密码短语时,它同样透明地提取并使用散列类型标识符、盐和“散列编码字符串”中的迭代计数。因此,您无需自己费心腌制和拉伸- phpass 会为您处理这些。

我把困扰我的句子加粗了。
我一直认为盐应该是秘密的,因为攻击者不应该知道它。因此,如果理解正确,PHPass 会将使用的盐存储在相同的哈希中,以便在比较密码并检查是否有效时能够使用它。
我的问题是

  1. 这安全吗?如果散列被泄露,攻击者拥有用于散列密码的盐......这里有一些我想念的东西。
  2. 我在这里真的可以免费为密码加盐吗?我真的可以依赖 PHPass 吗?