问题标签 [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.
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 毫秒。
java - 我可以安全地将 jBcrypt 的算法标识符更改为 y 吗?
由于 php 中的漏洞,算法前缀从 a 更改为 y。更多细节在这里:http ://blog.ircmaxell.com/2012/12/seven-ways-to-screw-up-bcrypt.html 。我已经检查过了,jbcrypt 正在产生$2a$...
哈希值。似乎它没有产生文章讨论的缩短版本。但是,可能是我没有偶然发现正确的哈希值。jBcrypt 是否具有与 php 相同的漏洞?如果不是,那么将算法标识符更改为 y 是否安全?
java - BCrypt vs PBKDF2WithHmacSHA1
为了安全地散列密码,我应该使用哪种算法?BCrypt
还是PBKDF2WithHmacSHA1
?
哪个更安全?PBKDF2WithHmacSHA1
内置于 Java 中,同时BCrypt
可通过jBCrypt库获得(大部分都收到了正面评价)。
另外,如果我选择BCrypt
我是否应该将用户的密码输入限制为 55 个字符(因为这是 的限制BCrypt
)?
Java
如果您是具体的,那将很有帮助。
请注意,我会选择使密码更安全且暴力破解更困难的选项。
bcrypt - 在 Spring Security 中解码 Bcrypt 编码的密码以停用用户帐户
我正在 Spring Hibernate MVC 中开发 Web 应用程序项目。我在 Spring 安全性中使用 Bcrypt 算法将编码密码存储在数据库中。
现在,我想对该编码密码进行解码以停用使用帐户,在该帐户中,我要在用户停用帐户之前向用户提供电子邮件和密码以进行验证。我在获取解码密码时遇到问题。
任何人都可以帮助我摆脱它或满足我的要求的任何替代解决方案吗?
java - 不能在 java Eclipse 中使用 BCrypt
我想对用户密码使用 bcrypt 加密。我下载 bcrypt zip 文件 bcrypt 1.1.zip 并将其添加到我在 Eclipse 中的项目构建路径中。现在,当我想在 servlet 中使用 BCrypt 时,会出现错误 BCrypt 无法解决。我不知道如何克服这个。请解释一下。
spring-security - Spring Security 的 BCrypt 实现是否易受攻击?
我们公司的安全审计发现我们的 bcrypt 哈希的前缀是“$2a$”。根据 [1] 和 [2],这可能表明使用了较旧的、易受攻击的 bcrypt 实现。
所以 - 这里是我的问题:
- Spring Security 的 bcrypt 实现是否包含漏洞?
- 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
java - Apache Shiro 支持 bCrypt 吗?
Apache Shiro 身份验证框架是否支持使用 bCrypt 密码哈希算法?如果没有,有没有办法让它与 Shiro 一起工作?
除了 Spring Security 之外,是否还有其他身份验证框架(如 Shiro)支持 bCrypt?
java - 检查字符串是否已使用 BCrypt 散列
我正在使用 BCrypt 的 Java 实现,我想测试一个字符串是否已经用 BCrypt 散列。有可能吗?
我什么也找不到。它会像这样工作
这个想法是我有一个自动方法,可以在创建时散列一些字符串。当我更新对象时,我希望它只散列“新值”。
谢谢。
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
有谁知道这里发生了什么?
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) 的盐修订无效。 ..`
如何使两者兼容?