diff --git a/cred/md5-user-salt.go b/cred/md5-user-salt.go index 6a83e414..429f644e 100644 --- a/cred/md5-user-salt.go +++ b/cred/md5-user-salt.go @@ -41,9 +41,17 @@ func (cm *Md5UserSaltCredManager) GetHashedPassword(password string, salt string if salt == "" { return getMd5HexDigest(password) } + return getMd5HexDigest(getMd5HexDigest(password) + salt) } func (cm *Md5UserSaltCredManager) IsPasswordCorrect(plainPwd string, hashedPwd string, salt string) bool { + // For backward-compatibility + if salt == "" { + if hashedPwd == cm.GetHashedPassword(getMd5HexDigest(plainPwd), salt) { + return true + } + } + return hashedPwd == cm.GetHashedPassword(plainPwd, salt) } diff --git a/cred/sha256-salt.go b/cred/sha256-salt.go index acd44e29..aa7a4ff6 100644 --- a/cred/sha256-salt.go +++ b/cred/sha256-salt.go @@ -41,9 +41,17 @@ func (cm *Sha256SaltCredManager) GetHashedPassword(password string, salt string) if salt == "" { return getSha256HexDigest(password) } + return getSha256HexDigest(getSha256HexDigest(password) + salt) } func (cm *Sha256SaltCredManager) IsPasswordCorrect(plainPwd string, hashedPwd string, salt string) bool { + // For backward-compatibility + if salt == "" { + if hashedPwd == cm.GetHashedPassword(getSha256HexDigest(plainPwd), salt) { + return true + } + } + return hashedPwd == cm.GetHashedPassword(plainPwd, salt) } diff --git a/cred/sha512-salt.go b/cred/sha512-salt.go index c3bee357..606c5f57 100644 --- a/cred/sha512-salt.go +++ b/cred/sha512-salt.go @@ -41,9 +41,17 @@ func (cm *Sha512SaltCredManager) GetHashedPassword(password string, salt string) if salt == "" { return getSha512HexDigest(password) } + return getSha512HexDigest(getSha512HexDigest(password) + salt) } func (cm *Sha512SaltCredManager) IsPasswordCorrect(plainPwd string, hashedPwd string, salt string) bool { + // For backward-compatibility + if salt == "" { + if hashedPwd == cm.GetHashedPassword(getSha512HexDigest(plainPwd), salt) { + return true + } + } + return hashedPwd == cm.GetHashedPassword(plainPwd, salt) }