问题标签 [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 投票
3 回答
5394 浏览

java - 密码散列使用什么?有什么理由不使用 jBCrypt?

我计划在一个新的 Web 应用程序中使用jBCrypt进行密码散列,因为它应该是我读过的最好的。因为在我调查是否有任何理由不使用它之前我没有使用它。

我有这个:

  • 我没有在 Maven 存储库中找到它(在 mvnrepository.org 搜索 jbcrypt 和 bcrypt),这是一个令人沮丧的问题,因为我希望尽可能使用 Maven 存储库管理我的依赖项。如果 jBCrypt 是密码散列的最佳解决方案,我必须设置自己的本地存储库并以这种方式使用它。还是我只是错过了它?也许它在某个地方?
  • 它只是在 0.2 版本,但它可能还是稳定的,版本号低的原因还有其他原因?
0 投票
2 回答
1876 浏览

hash - 如何检查两个散列密码是否相同?

我正在编写一个程序,在将登录详细信息发送到服务器之前,我使用 MD5 对其进行哈希处理,但是我必须将其与从数据库中检索到的河豚(jBCrypt)哈希密码进行比较。

jBCrypt 使用:

问题是,我没有要测试的候选密码。我怎样才能既安全地传输我的登录详细信息又将这些详细信息安全地存储在数据库中。解决这个问题的最佳方法是什么?

我使用用户名、时间戳、随机字节和密码来创建我的 md5 摘要值。

谢谢,弗拉基米尔

0 投票
1 回答
659 浏览

c# - jBCrypt 0.3 C# 端口 (BCrypt.net)

在查看原始 jBCrypt v0.1 C# 端口中的错误后:BCrypt.net相关问题)。我决定将新的 jBCrypt 代码与旧的 C# 端口进行比较,以查找差异和潜在问题,例如相关问题的错误。

这是我发现的:

如果先验不正确,下面会修复它吗?

0 投票
1 回答
14545 浏览

java - 在 Android 应用程序中使用 jBCrypt 对密码进行加盐会导致长时间挂起

当他们使用我的应用程序注册时,我正在使用jBCrypt 库对用户密码进行哈希处理。

我正在使用带有盐的基本哈希函数,如下所示:

注册时我注意到一到两分钟的挂起,并检查了调试器,确认 BCrypt 负责。

加盐密码真的需要那么多处理能力吗?如果是这样,一个好的选择是将明文密码发送到服务器进行散列吗?我最初对此事的想法是在它被发送到任何地方之前对其进行哈希处理。有任何想法吗?

0 投票
1 回答
9710 浏览

java - 如何使用 jBCrypt 进行密码哈希比较?

我无法使用 BCrypt 的 checkpw(plaintextpw, previoushash) 方法获取明文密码和以前的哈希值来匹配。

在注册 servlet 中,我获取输入的密码,使用 BCrypt 的 hashpw(password, genSalt) 方法对其进行哈希处理并将其存储在数据库中。

在登录 servlet 中,我从数据库中获取该哈希,并使用 BCrypt 的 checkpw 来查看它是否与输入的密码匹配。

它永远不会匹配。这在我的常规 Java 应用程序中运行良好,只是在 web 应用程序中不行。没有其他人有这个问题,所以我想我一定做错了:

BCrypt API 非常简单 -这里

我没有存储盐,因为使用 BCrypt 你应该不必存储 - 那我做错了什么?

0 投票
1 回答
478 浏览

password-encryption - jBCrypt 的默认 log_rounds 是否仍然适用于 2013 年

自 2010 年推出以来,我一直在使用开箱即用的 jBCrypt 0.3 版。我使用默认的 getsalt() 方法,将“log_rounds”的数量设置为 10。鉴于密码破解硬件和方法,这个值是否仍然适合作为默认值,或者我应该看一些更高的值。

来自javadoc的信息...

工作量呈指数增长(2**log_rounds),因此每次增量都是工作量的两倍。默认 log_rounds 为 10,有效范围为 4 到 31。

0 投票
9 回答
38996 浏览

java - BCrypt.checkpw() 无效的盐版本异常

我正在尝试在我的 Play 2.1 中使用 BCrypt 实现身份验证。Java 应用程序,但是Invalid salt version exception当我尝试对用户进行身份验证时,我得到了。

这是我的堆栈跟踪

我正在使用以下 Maven 存储库: http: //mvnrepository.com/artifact/org.mindrot/jbcrypt/0.3m

我的代码基于文档,因此

用于保存密码(我也在检查密码是否为空)

用于检查输入的密码是否正确,其中密码为字符串,d.getPassword() 为散列密码。

我不知道这是否是相关信息,但确切地说,我将休眠用于 ORM 和 PostgreSQL 8.4 作为数据库。

我有点卡在这里所以我问是否有人可以帮助我。比你提前很多。

0 投票
1 回答
775 浏览

java - 如何比较通过在 Rails 上设计 gem ruby​​ 散列的 Java 密码

我正在处理从 mysql db 验证用户的任务。用户密码由 Ruby on Rails 的 devise gem 框架进行哈希处理。

Docs 说它也在使用 BCrypt 来散列密码。jBcrypt 的问题在于

虽然它应该返回 true,因为 Google123 散列是

使用 BCrypt 算法。

你能帮我解决这个问题吗,或者我应该寻找一些其他的 Bcrypt 实现。

0 投票
1 回答
221 浏览

java - 使用 jBCrypt 最安全的方法是什么?

我一直在用java开发一个登录系统。我目前让程序先做一些小的自定义加密,然后使用 JBCrypt 加密/散列,然后使用 php 检查数据库是否匹配散列。然而,问题是当使用 gensalt(n) 时,你每次都会得到一个随机的盐,因此计算的哈希值永远不会与存储的哈希值匹配。有没有一种很好的方法来限制盐,使其每次都散列相同?或者在从数据库散列之前检索我的加密密码是否安全,然后使用 java 检查该散列?

0 投票
1 回答
2059 浏览

grails - 将密码散列从 SHA 转换为 bcrypt

这个问题已经在这个 Stack Overflow 问题中得到了回答,但它不是 Grails 特有的,而且有点模糊。

我使用 Spring Security 设置了我的 Grails 应用程序,但显然没有获得最新版本,因为它默认为 SHA-256 而不是 bcrypt。现在,我有生产数据,其中的密码散列在一种似乎不太理想的方法中。

启用bcrypt 散列是小菜一碟:

但现在我需要应用程序将旧哈希转换为新哈希。从根本上说,我知道当用户登录时,我应该让应用程序检查密码是否为 SHA-256 哈希,如果是,则使用 bcrypt 重新哈希输入的密码。一段时间后,它们将全部升级,并且可以删除该代码。

但是,确定密码哈希是来自 SHA-256 还是 bcrypt 的实际代码是什么?

编辑

也就是说,我调用来获取哈希的实际函数是什么?如何bcrypt(incomingpassword)查看它是否与现有密码哈希匹配?