问题标签 [pbkdf2]
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 - PHP的PBKDF2密码散列
感谢最近一篇文章中的一些很好的建议,我正在将 https://defuse.ca/php-pbkdf2.htm中的 PBKDF2 实现到我正在构建的一个小型 PHP 图像库中,以自学一些 PHP。
我知道您将盐和哈希存储在数据库中,然后在用户输入密码时重建它们以匹配。我不明白的是上述网站上的 validate_password 函数在为同一密码生成不同的唯一盐时如何工作。
例如,我创建了一个测试,重复生成我的名字 (andrew) 的密码。每次最终的哈希值都不一样,大概是因为盐是唯一的?但是,我也比较了密码的哪个生成的哈希并不重要,它验证了它。(它显然没有验证像 Andrew56 或 ndrew1 这样的完全不同的密码)。
谁能向我简单的自己解释为什么会这样?好像我什至不需要储存盐?我希望这不是题外话。
java - 为什么我在不同的机器上使用 PBKDF2 得到不同的结果?
我正在尝试使用 PBKDF2 来存储密码。然后,我将代码与它在另一台机器上生成的密码哈希一起使用。
我正在使用这种方法来加密我的密码:
它工作正常,但是当我在另一台机器上运行它时(即将我的项目安装在另一台机器上,数据库对我最初运行的机器的默认密码进行了加密)我看到使用相同的盐和密码它给了我不同的加密。据我了解,SecretKeyFactory 方法仅取决于我给它们的输入,还是它们也取决于我正在运行的机器?
如果是这样,如何使用此安全机制保存首次安装的默认密码,而无需在安装期间运行任何额外代码?
谢谢你!
python - 如何以最少的阻塞在 Tornado 中散列密码?
我正在使用PBKDF2,但这同样适用于 BCrypt。
使用合理的迭代次数对密码进行哈希处理可以轻松阻塞 0.5 秒。什么是一种轻量级的方法来消除这个过程?我不愿意为这个操作设置像 Celery 或 Gearman 这样的东西。
python - python passlib:“回合”的最佳价值是什么
对于大多数面向公众的服务,在用户开始生气之前,您通常可以让登录时间超过 250 毫秒 - 400 毫秒。
那么,如果我们认为登录尝试对数据库有一个调用,并且它使用带有非阻塞调用的MongoDB ,那么登录/注册rounds
的最佳价值是什么。(使用Mongotor,并使用电子邮件作为,因此默认情况下它是索引的,查询速度很快:0.00299978256226并且当然使用具有3条记录的数据库进行了测试......)_id
现在如果我使用半值:
我在戴尔 XPS 15 i7 2.0 Ghz 上使用Windows 7 64 位
注意:安装了bcrypt,当然,直接使用它作为默认值(rounds = 12
)真的很痛苦:
半值:
你能建议我在使用时pbkdf2_sha512
对生产有好处吗?
php - PHP 中 PBKDF2 的安全性
所以我在数据库中存储了一些敏感数据(除其他外还有一些密码),我目前正在使用这个: https ://github.com/P54l0m5h1k/PBKDF2-implementation-PHP
简而言之,它允许我使用密钥加密和解密数据。
例如,使用的密钥未与敏感数据存储在同一台服务器上。如果黑客以某种方式访问我的表并查看加密数据,是否有可能在没有密钥的情况下解密其中的任何一个?
cuda - GPU KDF 哈希(而不是饼干)
所以我一直在关注 GPU 破解者,它们令人印象深刻。我看过一些文章说有人每秒获得多达 3840 亿个密码。我们一直在使用带有随机盐的 PBKDF2,而不是只使用一次哈希,但它肯定会占用你的 CPU。我想知道是否可以使用 NVIDIA Cuda 之类的东西以更快、更分散的方式运行 PBKDF2 或类似的东西,而不是破解者?有没有人尝试过这样做?
python - pbkdf2 VS bcrypt,回合?
我有一个愚蠢的问题(可能已经被问过了):
人们总是比较BCrypt和PBKDF2并说BCrypt更好,因为例如使用GPU速度较慢,但他们忽略了Rounds value
,尤其是当我谈论Python时,BCrypt并不强大,所以我的问题很简单:
即使是很小的整数值也值得使用BCrypt吗?在 Passlib 中,默认值是12
,tested 并给了我0.40 seconds
,而PBKDF2给了我默认值是12000
rounds:0.142 seconds
例如,如果我只使用 5 轮的 BCrypt,我会说:嘿,我的应用程序比使用 12000 轮的 PBKDF2 更安全 - 更快!(我知道这似乎很愚蠢,对不起)。
bcrypt - BCrypt 和 SCrypt 是密钥派生函数吗?
很抱歉这个问题,但我总是发现它们与 PBKDF2 相比,BCrypt 和 SCrypt KDF 也是如此?
bcrypt - pbkdf2 上如何发生暴力破解?
很抱歉这个问题,但我问的是:使用 MD5 时,我们得到一个哈希,所以为了得到密码,我们对所有单词进行哈希处理,直到找到相同的哈希值。
但是在 pbkdf2 或 bcrypt 或 scrypt 等密钥派生算法中,黑客需要寻找什么?或者他会对所有单词做出相同的算法以获得相同的密钥推导?
很抱歉这个愚蠢的问题。
encryption - 随机字节的密钥推导函数?
我知道KDF(Key derivation function)用于拉伸用户密码,基本上不适合用作密码算法中的密钥。
但是如果我创建一个随机密钥(随机 32 字节),我还需要在其上使用 KDF 以确保正确加密吗?