Skip to content

Commit 6bf67c1

Browse files
committed
enhancement to use salt value
1 parent b713cbc commit 6bf67c1

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

src/main/java/com/msalmi/SHA1HashProvider.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
public class SHA1HashProvider implements PasswordHashProvider {
1111

1212
private final String providerId;
13+
public static final String ALGORITHM = "SHA-1";
1314

1415
public SHA1HashProvider(String providerId) {
1516
this.providerId = providerId;
@@ -32,15 +33,16 @@ public PasswordCredentialModel encodedCredential(String rawPassword, int iterati
3233

3334
@Override
3435
public boolean verify(String rawPassword, PasswordCredentialModel credential) {
35-
String encodedPassword = this.encode(rawPassword, credential.getPasswordCredentialData().getHashIterations());
36+
String salt = new String(credential.getPasswordSecretData().getSalt(), java.nio.charset.StandardCharsets.UTF_8);
37+
String encodedPassword = this.encode(salt + rawPassword, credential.getPasswordCredentialData().getHashIterations());
3638
String hash = credential.getPasswordSecretData().getValue();
3739
return encodedPassword.equals(hash);
3840
}
3941

4042
@Override
4143
public String encode(String rawPassword, int iterations) {
4244
try {
43-
MessageDigest md = MessageDigest.getInstance(this.providerId);
45+
MessageDigest md = MessageDigest.getInstance(ALGORITHM);
4446
md.update(rawPassword.getBytes());
4547

4648
// convert the digest byte[] to BigInteger

src/main/java/com/msalmi/SHA1HashProviderFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import org.keycloak.models.KeycloakSessionFactory;
88

99
public class SHA1HashProviderFactory implements PasswordHashProviderFactory {
10-
public static final String ID = "SHA-1";
10+
public static final String ID = "sha1-salted";
1111

1212
@Override
1313
public PasswordHashProvider create(KeycloakSession session) {

0 commit comments

Comments
 (0)