为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
MYYA 2023-03-07 14:37:02
Python:# generate passwordldap_salted_md5.hash("123456") # verify passwordldap_salted_md5.verify("123456","{SMD5}991RjK3DQCT+ri/yxQB613Yuxdg=")# return true壳:# generate passwordslappasswd -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这一步
查看完整描述

1 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

 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

        }


查看完整回答
反对 回复 2023-03-07
  • 1 回答
  • 0 关注
  • 70 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信