我在使用SecureSocialPasswordHasher.passwordHash
的{{1}}包中的securesocial.utils.SecureSocialPasswordHasher
方法进行哈希处理的数据存储区上有密码,我必须通过Python验证它们。
因此,使用SecureSocial
(或整个Play框架)是不可能的。问题是:调用该方法时它用于散列有什么用?从文档中可以看出它是SecureSocial
,但对我来说还不够明确。
--------- --------- EDIT
我在Bcrypt
个论坛上被告知确实使用SecureSocial
工作因子10默认值。但它并不反映我在数据存储区看到的内容。
那里有两列,一个用于盐,另一个用于哈希密码。它们都没有Bcrypt
标题(例如Bcrypt
)。此外,盐的大小只有11个字符,散列密码只有22个字符长(并且没有在字符串中有盐的迹象)。
答案 0 :(得分:1)
确定SecureSocial
上的哈希密码的默认值确实为Bcrypt
。
它的哈希方法的默认实现是:
def hash(plainPassword: String): PasswordInfo = {
PasswordInfo(id, BCrypt.hashpw(plainPassword, BCrypt.gensalt(logRounds)))
}
这适用于最新版本的SecureSocial
。
关于我的具体问题,主要问题是我没有传达我正在处理的代码使用旧版SecureSocial
,并且已经覆盖了has方法。