- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我开始了解 jBCrypt 用于散列密码并存储在数据库中。但我没有找到任何选项可以从哈希值中获取实际值。只有 BCrypt.checkpw(password, hashedPassword) 可用,它返回 boolean 值。 http://www.mindrot.org/projects/jBCrypt/如何从哈希值中获取实际值。如果在jBCrypt中不可能,是否有其他方法可以在java中加密和解密值?提前致谢...
最佳答案
您可以使用对称加密算法,而不是使用哈希函数,例如 Spring Security
提供的,来自他们的 Crypto Module
,更具体地说是他们的 Encryptors类。
这是一个基本的加密/解密示例:
public static void main(String[] args) {
final String salt = UUID.randomUUID().toString().replace("-", "");
TextEncryptor textEncryptor = Encryptors.delux("my-super-secure-password-for-the-encryptor", salt);
final String passwordToBeEncrypted = "my-secure-password-to-be-encrypted";
final String encrypted = textEncryptor.encrypt(passwordToBeEncrypted);
textEncryptor.decrypt(encrypted);
System.out.println(passwordToBeEncrypted.equalsIgnoreCase(textEncryptor.decrypt(encrypted)));
}
在这里,我使用的是delux
。根据他们的文档:
Creates a text encryptor that uses "stronger" password-based encryption.
请记住,这是一种非常幼稚的加密和解密方法。
我不建议您将此解决方案复制粘贴到生产代码中。
为了使此功能做好生产准备,您希望将提供给 Encryptors.delux()
的密码存储在安全的地方。此外,您还希望使用不同的方式为您的密码生成盐(可能为每个新密码加密生成一个盐)并将其存储起来以供以后解密密码时使用。
此外,您可能不希望将密码保留为纯文本(字符串),而是将其保留为 char[]
或 byte[]
,但这应该给出从你可以开始的地方开始。
还有一个不同的库具有相同的功能,来自 Apache,Apache Commons Crypto ,它使用与 Spring Crypto 相同的算法。
请记住,使用库比自己实现更安全,因为使用包 javax.crypto
需要您知道自己在做什么,并且不会造成不必要的伤害。
旁注:您可能会遇到您的 jdk 仅限于 128 位的情况。要受益于 256 位,请确保添加 Java Cryptography Extension
关于java - jBCrypt 加密和解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52036137/
我开始了解 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 和
我是一名优秀的程序员,十分优秀!