当前位置: 首页 > 知识库问答 >
问题:

Spring Boot BCryptPasswordEncoder匹配()方法[duplicate]的哈希不一致

朱乐逸
2023-03-14
        PasswordEncoder encoder = new BCryptPasswordEncoder();
        User u = this.dataSource.getUserByUsername(username);
        String passwordEncoded = encoder.encode(password);
        if (u == null) {
            return "No such user";
        } else {
            if (encoder.matches(password, u.getPassword())) {
                return passwordEncoded;
            } else {
                return "Incorrect password";
            }
        }

我知道保持一致的哈希通常会破坏编码的目的,但现在的情况是,关闭任何内容会使我的存储库中以前的所有用户条目都无用。有什么我能帮到的吗?

共有1个答案

墨安阳
2023-03-14

BCryptPasswordEncoder自动设置密码。他们附加到密码中的特定salt是在每次初始化时随机生成的。

当您重新初始化bcryptpasswordencoder时,您将生成一个新的salt以追加到密码中,因此结果自然会有所不同。

你可以在这里找到如何克服这个问题

 类似资料:
  • 问题内容: 我对加密/哈希知之甚少。 我必须对加密密钥进行哈希处理。Java中的示例是这样的… 现在,如果我错了,请纠正我,但是上面的代码使用MD5算法对字符串进行了哈希处理。 当我在C#中哈希相同的字符串时,我希望得到相同的结果。 我当前的C#代码看起来像这样… 但是末字节结果不匹配。 Java得到… C#得到… 我需要C#代码才能获得与Java代码相同的结果(不是相反),有什么想法吗? 谢谢。

  • 操作系统:Windows 10 Docker版本:2.1.0.3稳定桌面社区 Docker撰写版本:1.24.1 null

  • 我正在写一个Django应用程序,需要与现有的Java播放框架应用程序一起工作。Play应用程序使用PasswordHash.java来存储密码。它以冒号分隔的格式存储密码。每个哈希都存储为::。 例如,下面是密码“测试”的条目: 在这里,我们可以通过拆分字符串并找到: 迭代次数: 盐: PBKDF2哈希:。 我修改了Django的check_密码机制以与此格式兼容,但发现它认为密码不正确。我用了

  • 当尝试在加纳奇上使用Web3j运行任何事务时,它失败了,除了:。似乎Ganache上发生了一些变化,破坏了互操作性。

  • keytool-exportcert-alias diego-keystore“c:\users\diego\desktop\celuchat.keystore”“c:\openssl\bin\openssl.exe”sha1-binary“c:\openssl\bin\openssl.exe”base64 celuchat.keystore是我在导出签名的应用程序时使用的密钥库,当keytool

  • 本文向大家介绍一致性哈希算法?相关面试题,主要包含被问及一致性哈希算法?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 一致性哈希算法在1997年由麻省理工学院提出,设计目标是为了解决因特网中的热点(Hot pot)问题,初衷和CARP(缓冲阵列路由协议,Cache Array Routing Protocol)十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT(D