gpt4 book ai didi

java - 检查字符串是否已使用 BCrypt 进行哈希处理

转载 作者:太空宇宙 更新时间:2023-11-04 13:26:09 24 4
gpt4 key购买 nike

我正在使用 BCrypt 的 Java 实现,并且我想测试字符串是否已使用 BCrypt 进行哈希处理。有可能吗?

我找不到任何东西。它会像这样工作

if (!BCrypt.hasBeenHashed(myString)) {
return BCrypt.hashpw(myString, salt);
}

// BCrypt.hasBeenHashed("my-new-password") > FALSE
// BCrypt.hasBeenHashed("$fdshjkfhdsfhdjkshfjdhfjd") > TRUE

这个想法是我有一个自动方法可以在创建时对一些字符串进行哈希处理。当我更新对象时,我希望它仅对“新值”进行哈希处理。

谢谢。

最佳答案

如果使用相同的算法,您可以读取所有哈希值的长度完全相同。 22、32 或 53,具体取决于您的实现。如果在Java中使用53。为了使其更可靠,您还可以检测第一个字符是 $ 并且整个字符串应为 53 个字符。位置 3 和 6 也包含 $。还可以检查其他因素,例如工作因素是否相同。这由位置 1 和 2 表示,所有这些的组合以及确保用户不会输入类似内容的验证。如果这不可行,则创建一个实例 boolean 值,在对密码进行哈希处理时将其设置为 true,但要求每个密码都是其自己的对象。

关于java - 检查字符串是否已使用 BCrypt 进行哈希处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32632152/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com