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
}
- 1 回答
- 0 關注
- 113 瀏覽
添加回答
舉報
0/150
提交
取消