Java KeyClock是否存在MessageDigestPasswordEncoder sha512?
我正在将用户从使用Symfony制作的OAuth 2系统迁移到KeyClope。 使用加密密码在keydape中创建用户是可以的,但我找不到与我的算法等效的算法 用户创建示例:Java KeyClock是否存在MessageDigestPasswordEncoder sha512?,java,php,symfony,keycloak,password-encryption,Java,Php,Symfony,Keycloak,Password Encryption,我正在将用户从使用Symfony制作的OAuth 2系统迁移到KeyClope。 使用加密密码在keydape中创建用户是可以的,但我找不到与我的算法等效的算法 用户创建示例: Post { "firstName": "test_encryption", "lastName":"test_encryption", "email":"jeremy.rafflin.
Post
{
"firstName": "test_encryption",
"lastName":"test_encryption",
"email":"jeremy.rafflin.test@ageo.fr",
"credentials": [{
"type":"password",
"secretData":"{\"value\":\"zeR2Uapc+a/2qD5QR56gh3mVb+KOeZ2XU+rkWMK6B5A=\",\"salt\":\"OThjajM1WnVZWlI3UzZOLk12WjJsQS9VWWZXQXp0WGZGLm5tL2hGSVFzbw==\"}",
"credentialData": "{\"algorithm\":\"sha512\",\"hashIterations\":5000}"
}]
}
对于我正在使用的PHP中的当前加密。
这相当于:
$password = 'toto';
$salt = '1234';
$salted = $password.'{'.$salt.'}';
$digest = hash('sha512', $salted, true);
for ($i=1; $i<5000; $i++) {
$digest = hash('sha512', $digest.$salted, true);
}
$encodedPassword = base64_encode($digest);
$password='toto';
$salt='1234';
$salted=$password.{.$salt.};
$digest=hash('sha512',$salted,true);
对于($i=1;$i)
我的算法是否存在于KeyClope中,或者我必须创建一个自定义算法
凭证算法
从:
以下是对每种保单类型的解释:
哈希算法
密码不是以明文形式存储的,而是
使用标准散列算法进行散列,然后再存储或删除
已验证。唯一可用的内置和默认算法是
PBKDF2.
尽管如此,KeyClope允许您通过利用
public class PasswordEncoderFactories {
...
public static PasswordEncoder createDelegatingPasswordEncoder() {
String encodingId = "bcrypt";
Map<String, PasswordEncoder> encoders = new HashMap<>();
encoders.put(encodingId, new BCryptPasswordEncoder());
encoders.put("ldap", new LdapShaPasswordEncoder());
encoders.put("MD4", new Md4PasswordEncoder());
encoders.put("MD5", new MessageDigestPasswordEncoder("MD5"));
encoders.put("noop", NoOpPasswordEncoder.getInstance());
encoders.put("pbkdf2", new Pbkdf2PasswordEncoder());
encoders.put("scrypt", new SCryptPasswordEncoder());
encoders.put("SHA-1", new MessageDigestPasswordEncoder("SHA-1"));
encoders.put("SHA-256", new MessageDigestPasswordEncoder("SHA-256"));
encoders.put("sha256", new StandardPasswordEncoder());
return new DelegatingPasswordEncoder(encodingId, encoders);
}
...
}