- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 jBCrypt Library在用户使用我的应用程序注册时对用户密码进行哈希处理。
我正在使用基本的散列函数,加盐,如下所示:
String pass = BCrypt.hashpw(rawPass, BCrypt.gensalt());
我在注册时注意到一到两分钟的挂起,并检查了调试器,确认是 BCrypt 造成的。
加盐密码真的需要那么的处理能力吗?如果是这样,一个好的替代方法是将明文密码发送到服务器以对其进行哈希处理吗?我对此事的最初想法是在将其发送到任何地方之前对其进行哈希处理。有什么想法吗?
最佳答案
这里是 an article其中列出了在配备 Core 2 Duo 处理器的 Mac 笔记本电脑上花费的时间。所以,是的,Bcrypt 在移动设备上可能会非常慢。
另一个常见的问题是 SecureRandom
的初始化,它可能非常慢,并且还可能由于缺少足够的随机数据而挂起。这将因不同的机器和操作系统而异。您会在其他地方找到很多关于它的讨论,但您可能想要测试它,或者使用 new SecureRandom()
自己初始化它,或者通过单独调用 gensalt
来隔离随机数据生成,然后只是调用 hashpw
的时间。
另一个问题是为什么你真的想在客户端上散列它?如果您将它存储在客户端并在本地登录,那么这可能有一定意义,但如果它被发送到服务器并且正常登录涉及向服务器发送明文密码,那么您将一无所获。此外,一个常见的误解是,在将密码发送到服务器(登录时)之前对其进行散列处理可以提供一些保护,而实际上这等同于发送明文密码。攻击者只有获得哈希才能获得访问权限。
哈希密码是一种防止攻击者获得访问权限(或至少减慢访问速度)的方法,如果密码存储本身受到威胁。
因此,如果密码存储在服务器上,则应以明文形式(通过安全通道)发送,并且服务器应决定如何对其进行哈希处理。
关于java - 在 Android App 中使用 jBCrypt 加盐密码会导致长时间挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7626914/
我开始了解 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 和
我是一名优秀的程序员,十分优秀!