问题标签 [jbcrypt]

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 投票
2 回答
734 浏览

java - 使用 jbcrypt 时的可变性能和性能下降

我正在使用 jbcrypt 在项目中对密码进行哈希处理。在我使用的硬件上验证密码时,性能大约为 500 毫秒(log_rounds 设置为 12)。然而,在正常使用一段时间后,性能时间突然下降到惊人的 15 秒。下降非常突然,没有积聚,并且在重新启动过程之前保持不变。

剖析显示在 key(..) 方法中使用了额外的时间。

资料来源:http: //jbcrypt.googlecode.com/svn/tags/jbcrypt-0.3m/src/main/java/org/mindrot/jbcrypt/BCrypt.java

此方法仅使用 xor 和 shift 等基本函数计算哈希。没有对象分配、外部资源使用、随机数生成等。

在同一进程中,其他功能的性能不会下降。内存分配稳定且低。不涉及 Full GC。

有没有人以前见过这个或任何线索来解释为什么会发生这种情况?我可以理解在某种程度上取决于其他情况的可变性能,但这是从大约 500 毫秒开始的非常突然和稳定的下降。约 15000 毫秒。

0 投票
0 回答
84 浏览

java - 我可以安全地将 jBcrypt 的算法标识符更改为 y 吗?

由于 php 中的漏洞,算法前缀从 a 更改为 y。更多细节在这里:http ://blog.ircmaxell.com/2012/12/seven-ways-to-screw-up-bcrypt.html 。我已经检查过了,jbcrypt 正在产生$2a$...哈希值。似乎它没有产生文章讨论的缩短版本。但是,可能是我没有偶然发现正确的哈希值。jBcrypt 是否具有与 php 相同的漏洞?如果不是,那么将算法标识符更改为 y 是否安全?

0 投票
2 回答
2720 浏览

java - BCrypt vs PBKDF2WithHmacSHA1

为了安全地散列密码,我应该使用哪种算法?BCrypt还是PBKDF2WithHmacSHA1

哪个更安全?PBKDF2WithHmacSHA1内置于 Java 中,同时BCrypt可通过jBCrypt库获得(大部分都收到了正面评价)。

另外,如果我选择BCrypt我是否应该将用户的密码输入限制为 55 个字符(因为这是 的限制BCrypt)?

Java如果您是具体的,那将很有帮助。
请注意,我会选择使密码更安全且暴力破解更困难的选项。

0 投票
2 回答
64406 浏览

bcrypt - 在 Spring Security 中解码 Bcrypt 编码的密码以停用用户帐户

我正在 Spring Hibernate MVC 中开发 Web 应用程序项目。我在 Spring 安全性中使用 Bcrypt 算法将编码密码存储在数据库中。

现在,我想对该编码密码进行解码以停用使用帐户,在该帐户中,我要在用户停用帐户之前向用户提供电子邮件和密码以进行验证。我在获取解码密码时遇到问题。

任何人都可以帮助我摆脱它或满足我的要求的任何替代解决方案吗?

0 投票
0 回答
1232 浏览

java - 不能在 java Eclipse 中使用 BCrypt

我想对用户密码使用 bcrypt 加密。我下载 bcrypt zip 文件 bcrypt 1.1.zip 并将其添加到我在 Eclipse 中的项目构建路径中。现在,当我想在 servlet 中使用 BCrypt 时,会出现错误 BCrypt 无法解决。我不知道如何克服这个。请解释一下。

0 投票
1 回答
915 浏览

spring-security - Spring Security 的 BCrypt 实现是否易受攻击?

我们公司的安全审计发现我们的 bcrypt 哈希的前缀是“$2a$”。根据 [1] 和 [2],这可能表明使用了较旧的、易受攻击的 bcrypt 实现。

所以 - 这里是我的问题:

  1. Spring Security 的 bcrypt 实现是否包含漏洞?
  2. Spring Security 是否支持“$2x$”和“$2y$”前缀?

参考文献:
[1] http://blog.ircmaxell.com/2012/12/seven-ways-to-screw-up-bcrypt.html
[2] http://www.openwall.com/lists/oss-security /2011/06/21/16

0 投票
2 回答
1371 浏览

java - Apache Shiro 支持 bCrypt 吗?

Apache Shiro 身份验证框架是否支持使用 bCrypt 密码哈希算法?如果没有,有没有办法让它与 Shiro 一起工作?

除了 Spring Security 之外,是否还有其他身份验证框架(如 Shiro)支持 bCrypt?

0 投票
1 回答
1588 浏览

java - 检查字符串是否已使用 BCrypt 散列

我正在使用 BCrypt 的 Java 实现,我想测试一个字符串是否已经用 BCrypt 散列。有可能吗?

我什么也找不到。它会像这样工作

这个想法是我有一个自动方法,可以在创建时散列一些字符串。当我更新对象时,我希望它只散列“新值”。

谢谢。

0 投票
0 回答
1479 浏览

bcrypt - jBcrypt:BCrypt.checkpw 突然需要大约 30 倍的时间

在我们的 Web 应用程序中,我们使用jBcrypt对密码进行哈希处理。我们在对密码进行哈希处理时使用 13 个log_rounds

通常,BCrypt.checkpw()大约需要 1 秒。但有时(几天后),它突然开始变慢,从那时起大约需要 30 秒,并且无法恢复到正常速度。重新启动 Tomcat 是唯一有帮助的事情。

我不会怀疑这种情况是否不时发生,例如 CPU 负载高或 GC 正在运行。但事实并非如此,它只是突然开始变慢。只有登录过程受到影响,应用程序的其余部分仍然很快。我们也没有任何可确定的内存泄漏或其他性能问题。只是 BCrypt.checkpw() 很慢。线程转储显示BCrypt.checkpw和后续方法调用消耗了时间,尤其是BCrypt.encipher

我在 SO 上只发现了一个类似的问题,但在我们的案例中,多个 Classloaders 不会成为问题: Variable and degrading performance when using jbcrypt

有谁知道这里发生了什么?

0 投票
1 回答
2102 浏览

java - 无法使用 jBcrypt 验证使用 php password_hash() 创建的密码哈希 + 盐

我们正在将我们的身份验证模块从 PHP 迁移到 Java。目前密码 hash+salt 使用 BCrypt 算法存储在数据库中。该值是使用 PHP 的 password_hash() 函数生成的。为了验证纯文本密码,我们使用 PHP 的 password_verify() 函数。

PHP 代码

为了将此身份验证模块迁移到 Java,我们使用jBCrypt-0.4.jar来使用jBCrypt

Java 代码

但是,从 php 生成的 passwordhash+salt 并未在 java 中进行验证。对于字符串 'abcd' ,生成的 hash+salt 是

PHP - $2y$10$SA4iLMAniuNO6p9P1ZJElePaJvlN5eHGZ2dDt2Mutle4FQr1OY4hC

Java - $2a$10$YnqJT5NPCPTI8qKBbLfgIOIOW4eckdbE1R85tJGNRUJKmxz1TLkWG

当我尝试使用在 Java 中匹配使用 PHP 生成的字符串时

我得到了以下

线程“主”java.lang.IllegalArgumentException 中的异常:org.mindrot.jbcrypt.BCrypt.hashpw(BCrypt.java:665) 的 org.mindrot.jbcrypt.BCrypt.checkpw(BCrypt.java:764) 的盐修订无效。 ..`

如何使两者兼容?