我希望有一段能够检查给定密码是否与存储在人群cwd_user表中的密码匹配的代码。
该表中的密码以“{PKCS5S2}.”开头我在下面的链接中发现,人群正在使用PBKDF2算法:
默认情况是"Atlassian“,它目前是Bouncy城堡实现PKCS 5版本2(又名PBKDF2)的一个愚蠢的包装器,它使用一个随机的16字节盐、10,000个迭代,并生成一个256位哈希作为最终输出。
https://answers.atlassian.com/questions/235858/password-security
有人能给我提供一个方法来匹配密码吗?
例如,如果我使用密码"1234“创建一个用户"toto”,则在我的数据库中得到以下行:
user_name credential
------------- -------------------------------------------------------------------------
toto {PKCS5S2}m+u8ed1RKRew3jjHPilZw0ICL6BG/qyeN+kVRRS9nsO+VK7Q5I0vCK3gLvCFWC3n 我希望有这样一种方法:
public String getHash(String rowPassword){
// ?????
}哪里
getHash("1234") returns "{PKCS5S2}m+u8ed1RKRew3jjHPilZw0ICL6BG/qyeN+kVRRS9nsO+VK7Q5I0vCK3gLvCFWC3n" 发布于 2014-10-03 14:38:56
作为一群客户,您可以访问类AtlassianSecurityPasswordEncoder,这正是如此。
底层编码器选择一个随机的盐,忽略传入的盐,这样encodePassword就不会每次给出相同的哈希。使用isPasswordValid确认密码和哈希匹配。
https://stackoverflow.com/questions/26175391
复制相似问题