问题标签 [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.
php - phpass 安全密码存储的最佳解决方案?
我正在创建一个处理大量个人数据的服务,因此让密码直接飞出是不合适的。我一直在寻找任何可能的解决方案,引起我注意的是phpass。我确实在这里的 StackOverflow 上读过它。
我知道关于这个主题有很多问题,但我想澄清一下,phpass 是一种存储密码的安全方式。我怀疑的原因是它不使用任何盐(至少似乎没有使用),据我所知,这是安全存储的关键。
我当前的方法只是一个 sha512-hash,带有一个用户特定的盐和另一个特定于站点的哈希。这是我的 PHP 代码的剪辑:
很高兴听到一些关于这个问题的专家意见。我很抱歉为这个已经并将永远被问到的主题创建了另一个线程。提前致谢。
编辑:
我也听说过对密码进行哈希处理,比如说 1000 次也是存储密码的好方法。这种方式散列只需要几秒钟(最多),但破解散列密码需要很长时间?
php - “随机”盐比“独特”盐有什么好处?
我目前正在编写一个程序,其中一部分涉及安全地创建密码哈希以存储在数据库中,我遇到了phpass框架,这似乎是强烈推荐的。在 phpass 中,他们似乎竭尽全力生成尽可能真正随机的盐以用于散列(例如,从 /dev/urandom 读取)。
我的问题是,与简单地使用相比,这样做有什么好处uniqid()
?这难道不是简单地确保用于哈希的盐彼此不同而不是随机的吗?使用真正随机的盐实际上不会比使用独特的盐更糟糕,因为它可能会产生冲突而 uniqid() 不会?
编辑:我的问题不是关于计算机环境中是否存在“真正的”随机性,所以也许我措辞有点错误,但我的问题更多的是“更多”随机盐是否比更多唯一性有任何好处作为盐。
php - 清理提供给 PHPass 的密码是否安全,反之亦然?
根据我对散列的一般理解,任何地方的一个更改字符都可以将整个散列扔到另一个球场……这让我开始思考……清理给 PHPass 的密码是个好主意吗?如果在将来的某个 PHP 版本中,他们决定使用其清理功能更改转义的内容,并且某人的密码包含新转义的字符之一,那将导致他们的散列消失并且他们永远无法重新进入(除非重置)。
我意识到潜在的安全风险超过了几次密码重置带来的不便,但我仍然对这一点感到好奇。这是一个合理的担忧吗?
php - 在 PHPass 中使用现有的 MD5 哈希是否有任何安全隐患?
在不知不觉中,我实现了一个使用 md5 作为哈希算法的登录系统。现在我确实知道得更多,我想转向使用 PHPass。我的问题是系统已经在生产中,要求所有用户更改密码将是所有麻烦的根源。
我想出了一个足够简单的解决方案,但鉴于我之前的错误,我想确保我不会因为无知而犯下同样严重的错误。
我的解决方案如下:
改变
md5($_POST['pass'])
- 根据数据库值检查 md5 哈希密码
至
md5($_POST['pass'])
- 将 md5 哈希密码传递给
$hasher->HashPassword()
- 用于
$hasher->CheckPassword()
根据数据库中的值检查重新散列的密码
只是为了清楚起见,我只是重新散列 md5 版本,因为那是我已经在数据库中拥有的。它不打算作为一种附加的安全措施(尽管如果是的话,那就太好了!)。
php - 生产和开发环境中依赖于平台的 PHP 哈希
在数据库中存储用户密码时,我决定放弃 md5() 作为密码加密算法,转而使用phpass库。
在使用 md5 的系统上,有一个生产/开发二元组是没有问题的,因为生成的哈希是相同的。因此,如果我在其中任何一个中创建了一个测试用户,那么相同的密码在另一个环境中也可以使用。
据我所知,这对于其他类型的散列算法来说是不一样的,因为 phpass(或其内部 php 函数)会创建与平台相关的散列(我是散列/加密新手)。
我的问题是,应该如何处理这种情况?prod/dev 中的不同数据库?但是如果“楼上”决定我们应该将我们的 Web 应用程序(连同它的 DB)移动到另一台服务器上——哈希密码现在不会无效——因为 phpass 会为相同(旧)密码创建不同的哈希值吗?
后期编辑:
好吧,我没有费心检查生产哈希的开发哈希。尽管它们不同,但它们的比较结果是“真实的”,就像“它们是等效的”一样。我想,如果哈希值不同,它们就不匹配(如 md5)。
php - 为什么 phpass 为相同的输入字符串返回不同的哈希值?
我习惯于让散列算法总是返回相同的散列。
为什么 phpass 库总是返回不同的哈希值?
跟IV有关系吗?(我从来没有完全理解这个概念)
php - 我无法运行 Phpass 测试
任何人都知道出了什么问题,我正在运行 Ubuntu(服务器)并安装了 apache 2.2.14-5 和 php 5.3.2-1。访问 test.php 文件时,我收到 HTTP 500 错误。这是我在 error.log 中得到的信息
有谁知道如何设置PHPass?
编辑:做了一个更简单的测试: http: //pastebin.com/TWq3C9Km,产生了与上面相同的错误。
EDIT2:我已将导致这些错误的原因缩小到以下代码行:
EDIT3:原来我无法读取错误消息,实际发生的是 PHP 无法读取文件本身。一个快速的 sudo chmod -R 777 phpass-0.3 暂时解决了这个问题,但这里必须是一个更好的方法。
actionscript-3 - 便携式 PHP 密码散列框架和 ActionScript 3 等价物
出色地?可能吗?存储在数据库中的密码使用The Portable PHP Password Hashing Framework
(http://www.openwall.com/phpass/) 进行哈希处理。
如何以与 AS3 相同的方式对它们进行哈希处理?
如果那不可能,那么as3crypto
库中最强的散列算法是什么?是hmac-sha256
吗?
谢谢你。
php - PHPass 错误:函数名必须是字符串
我用 PHPass 得到这个错误:
警告:is_readable():open_basedir 限制生效。文件(/dev/urandom)不在允许的路径内:(/customers/example.com/example.com/httpd.www:/customers/example.com/example.com/httpd.private:/customers /example.com/example.com/tmp:/customers/example.com/example.com:/var/www/diagnostics:/usr/share/php) 在 /customers/example.com/example.com/httpd。第 51 行的 www/example/scripts/PasswordHash.php 致命错误:函数名称必须是第 82 行 /customers/example.com/example.com/httpd.www/example/register.php 中的字符串
PasswordHash.php (PHPass) 上的第 51-54 行:
register.php 的第 81-84 行(还包括:前两行是 require 和 $hasher):
那么,这个错误是什么意思呢?
php - PHPass的正确实现
我正在使用 PHPass 在我的应用程序中存储用户密码,因为它比 md5 或 sha1 更安全。我有一个关于如何在密码中使用盐的问题。
根据我收集的信息,当您插入用户时,我会这样使用它:
然后当您在登录时检查用户详细信息时,您可以:
但我在那里看不到任何使用盐的东西。根据我的阅读,我的用户表应该有一个额外的字段用于哈希密码时使用的盐,但是CheckPassword
PHPass 的方法不带盐?
谢谢。