Как зашифровать (MD5) пароль в python-ldap? - PullRequest
0 голосов
/ 04 июня 2019

Приведенный ниже код работает нормально при сохранении, но если я попытался аутентифицировать пользователя, используя обычный сохраненный пароль, он не аутентифицируется?и когда я вручную изменяю пароль в phpldapadmin на MD5 и проверяю, работает ли аутентификация.

  1. Как зашифровать пароль к MD5 в python и сохранить его в LDAP?
  2. Есть ли разница в шифровании MD5 между PHP и Python?
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

1 Ответ

0 голосов
/ 04 июня 2019

Прежде всего, MD5 не является алгоритмом шифрования. Это криптографический алгоритм хеширования, точнее, устойчивая к столкновениям функция, которая принимает сообщение любой длины в качестве входных данных и возвращает в качестве выходных данных дайджест-значение фиксированной длины, которое можно использовать для аутентификации исходного сообщения.

Таким образом, вы не можете зашифровать пароли с помощью алгоритма MD5. Поскольку один и тот же алгоритм используется как в PHP, так и в Python, между ними нет никакой разницы.

...