- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
编辑:好的,所以我在这里找到了答案 BCrypt says long, similar passwords are equivalent - problem with me, the gem, or the field of cryptography?
不过,新问题是,如果您必须限制用户的密码长度,在我们试图教育用户选择越来越复杂的密码,甚至是密码短语的世界中,有人怎么推荐使用 bCrypt 进行散列,说您的密码必须短于 n 个字符似乎是在 thedailywtf.com 周五的截图中结束的一种方式:)
原问题如下:
我正在为一个应用程序重构一个旧的登录页面,并决定使用 JAVA 实现 jBCrypt ( http://www.mindrot.org/projects/jBCrypt/ ) 尝试一下 bCrypt 并遇到了一个主要的节目阻止者。
问题在于 检查密码使用很长的种子时似乎总是返回 true 的方法。我打算用 {InternalSalt}{username}{password} 对用户的密码加盐,然后用 bCrypt 散列它。
所以我有以下代码(尽可能地将其剥离以隔离 checkpw)。
public class Test {
public static void main(String[] args) {
String plaintext = "jw~ct/f61y1m7q458GiLVQpiqDK|8kG=d368Id:D@$^_80I{qrn1HM6423{FtestAccountO1nu3jKN";
String pw_hash = BCrypt.hashpw(plaintext, BCrypt.gensalt());
if (BCrypt.checkpw("jw~ct/f61y1m7q458GiLVQpiqDK|8kG=d368Id:D@$^_80I{qrn1HM6423{FtestAccountO1nu3jKN", pw_hash))
System.out.println("It matches");
else
System.out.println("It does not match");
}
最佳答案
好的,所以这个问题的措辞让我足以真正弄清楚我在寻找什么(为 rubber ducking 欢呼)。密码学领域目前是安全的!
BCrypt 使用 P_orig 实现 XOR,它是 18 个 4 字节的整数,直到它结束,这将您的加密“ key ”限制为 72 个字节。 72 字节后的所有内容都被忽略(警告会很好)。
似乎可以接受的妥协是不将用户的密码限制在 72 个字符或更少,而只是让它静默传递。这背后的想法是 72 个字符的 bCrypted 密码无论如何都比快速散列替代方案更好。
来源:BCrypt says long, similar passwords are equivalent - problem with me, the gem, or the field of cryptography?
关于security - jBCrypt 与 checkpw 的严重问题(不应该返回 true?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6179563/
我开始了解 jBCrypt 用于散列密码并存储在数据库中。但我没有找到任何选项可以从哈希值中获取实际值。只有 BCrypt.checkpw(password, hashedPassword) 可用,它
我正在为我的应用程序加密密码,因为密码将存储在共享首选项中 我发现了 bcrypt 并阅读了很多关于它的好东西,但我无法让它工作 我正在使用jBCrypt 。我按照说明进行了测试 String has
我正在为我的网络应用程序使用 heroku 嵌入式 tomcat。 在我的用户注册页面中,我有以下功能: private static String hashPwd(String pwd) {
我正在使用 jBCrypt 对密码进行哈希处理并将其存储在数据库中。由于它是一种单向算法,我们无法获取密码(原始纯密码字符串)。 当用户忘记密码时,我想我们无法提供密码,只能要求用户设置新密码。我的看
我正在使用 jbcrypt 对项目中的密码进行哈希处理。在我使用的硬件上验证密码时,性能约为 500 毫秒(log_rounds 设置为 12)。然而,在正常使用一段时间后,性能时间突然下降到惊人的
我在使用 BCrypt 的 checkpw(plaintextpw, previoushash) 方法获取明文密码和之前的哈希值时遇到问题。 在注册 servlet 中,我获取输入的密码,使用 BCr
问题说明了一切。代码可以在以下链接找到 -> http://www.mindrot.org/projects/jBCrypt/ 最佳答案 我强烈不同意现有答案和当前接受的答案。 在简要回顾了 jBcr
要散列密码(单向),它看起来像 bcrypt is the best . 我即将开始使用 jBCrypt ,但我有一些担心: 没有邮寄名单。 整体 Activity 非常低。 Bug tracker只
我打算使用 jBCrypt用于新 Web 应用程序中的密码散列,因为它应该是我读过的最好的。因为我之前没有使用过它,所以我正在研究是否有任何理由不使用它。 我有这个: 我没有在 Maven 存储库中找
编辑:好的,所以我在这里找到了答案 BCrypt says long, similar passwords are equivalent - problem with me, the gem, or
可能是一个非常愚蠢的问题,但我无法从 mindrot.org 添加 jbcrypt https://www.mindrot.org/projects/jBCrypt/到我现有的 android stu
希望这个例子胜过一千字。如果没有,这里有几个测试来对纯文本进行哈希处理 hello world使用盐种子static seed to be used在第一次测试中和 static seed to be
我正在使用 jBCrypt Library在用户使用我的应用程序注册时对用户密码进行哈希处理。 我正在使用基本的散列函数,加盐,如下所示: String pass = BCrypt.hashpw(ra
自 2010 年推出以来,我一直在使用开箱即用的 jBCrypt 版本 0.3。我使用默认的 getsalt() 方法,它将“log_rounds”的数量设置为 10。鉴于密码的进展破解硬件和方法,这
自 2010 年推出以来,我一直在使用开箱即用的 jBCrypt 版本 0.3。我使用默认的 getsalt() 方法,它将“log_rounds”的数量设置为 10。鉴于密码的进展破解硬件和方法,这
我在如何以及在何处比较我在注册 servlet 上散列的密码和我在登录时散列的密码时遇到问题。服务小程序。 希望大家能帮帮我。谢谢。登录 servlet: String password = requ
启动应用程序时,我在 Apache 日志中收到以下错误 我找到了 BCrypt.checkpw() Invalid salt version exception但这不匹配,因为我的用户存储在数据库中的
我们正在将身份验证模块从 PHP 迁移到 Java。目前密码hash+salt使用BCrypt算法存储在数据库中。该值是使用 PHP 的 password_hash() 函数生成的。为了验证纯文本密码
我正在尝试使用 jBCrypt 开始更有效地保护我的密码,但我不知道为什么 eclipse 不会检测到我的项目依赖性:我至少添加了以下内容: plugins.sbt resolvers += "jBC
我想在 php 中创建注册页面,并使用 bcrypt 对密码进行哈希处理并放入数据库中。 我还想用 Java 做一个登录系统,并使用 jbcrypt 获取相同密码中的密码。 如何使 jbcrypt 和
我是一名优秀的程序员,十分优秀!