下面的代码在保存时可以正常工作,但是如果我尝试使用普通保存的密码对用户进行身份验证,是否无法进行身份验证? 当我手动将phpldapadmin中的密码更改为MD5并测试身份验证是否有效时。
def addUser(record):
connect = ldapConnect()
try:
dn = "cn="+record['cn']+",ou=users,dc=example,dc=com"
attrs = {
"objectclass" : ['inetOrgPerson'.encode('utf-8'),'posixAccount'.encode('utf-8'),'shadowAccount'.encode('utf-8')],
"uid" : [record['uid'].encode('utf-8')],
"cn" : [record['cn'].encode('utf-8')],
"sn" : [record['sn'].encode('utf-8')],
"givenName" : [record['givenName'].encode('utf-8')],
"displayName" : [record['displayName'].encode('utf-8')],
"uidNumber" : [record['uidNumber'].encode('utf-8')],
"gidnumber" : [record['gidnumber'].encode('utf-8')],
"homeDirectory" : [record['homeDirectory'].encode('utf-8')],
"userpassword" : [record['userpassword'].encode('utf-8')]
}
connect.add_s(dn, modlist.addModlist(attrs))
connect.unbind_s()
return True
except ldap.LDAPError:
connect.unbind_s()
return False
答案 0 :(得分:0)
首先,MD5不是加密算法。这是一种加密哈希算法,更准确地说,是一种防冲突功能,它接受任意长度的消息作为输入,并返回固定长度的摘要值作为输出,该摘要值可用于验证原始消息。
因此,您无法使用MD5算法加密密码。由于PHP和Python使用相同的算法,因此两者之间没有区别。