如何使用go验证明文密码是否与salt md5密码相同?

Python:


# generate password

ldap_salted_md5.hash("123456") 

# verify password

ldap_salted_md5.verify("123456","{SMD5}991RjK3DQCT+ri/yxQB613Yuxdg=")

# return true

壳:


# generate password

slappasswd -h {SMD5} -s "123456" 

# return {SMD5}ZmDHoIiZZG/weuCNkLj189sFoPM=

# verify password by python 

ldap_salted_md5.verify("123456","{SMD5}ZmDHoIiZZG/weuCNkLj189sFoPM=")

# return True

我想用go来实现ldap_salted_md5.verify这一步


MYYA
浏览 157回答 1
1回答

叮当猫咪

 saltPassword := strings.Replace(user.Password, "{SMD5}", "", -1)        decodeSaltPassword, _ := base64.StdEncoding.DecodeString(saltPassword)        checksum := decodeSaltPassword[0:16]        salt := decodeSaltPassword[16:]        md5Ctx := md5.New()        md5Ctx.Write([]byte(bindSimplePw))        md5Ctx.Write(salt)        cipherStr := md5Ctx.Sum(nil)        if !bytes.Equal(checksum, cipherStr) {            return ldap.LDAPResultInvalidCredentials, nil        }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go