MySQL MD5 Passwörter in openLDAP importieren

FreeBSD, Gentoo, openSUSE, CentOS, Ubuntu, Debian
mccab99
Posts: 43
Joined: 2006-02-20 08:41
Location: Cloppenburg
 

MySQL MD5 Passwörter in openLDAP importieren

Post by mccab99 »

Hallo,

Ich habe eine MySQL-Datenbank mit MD5-Passwörtern. Die möchte ich gerne in openLDAP importieren.

Leider ist das nicht so einfach. Wenn ich den Hash einfach als

{MD5}Hash

via LDIF in openLDAP übernehme, kann ich auch bei gültiger Passworteingabe nicht erfolgreich authentifizieren - wäre ja auch zu einfach.

openLDAP kommt dazu bei Berechnung eines MD5-Hashes für das gleiche Passwort zu einem anderen Ergebnis als MySQL - logischer Weise.

Wie kan ich die in MySQL bestehenden Hashes in LDAP übernehmen? Die base64-Falle ist es übrigens nicht.

Gruß,

Maik
mccab99
Posts: 43
Joined: 2006-02-20 08:41
Location: Cloppenburg
 

Re: MySQL MD5 Passwörter in openLDAP importieren

Post by mccab99 »

Ich antworte mir mal selbst:

MySQL scheint "pures" MD5 zu liefern und nicht über libcrypt wie openLDAP zu gehen. Man kann das umcodieren - hier ein python-Vorschlag:

Code: Select all

mysql_md5 = 'ae2b1fca515949e5d54fb22b8ed95575'
bin_md5 = ''.join([ chr(int(mysql_md5[i:i+1],16)) for i in
range(0,len(mysql_md5),2)])
import base64
userPassword = '{MD5}'+base64.encodestring(bin_md5).strip()
Leider bin ich eher der PHp-Mensch. Was macht der da in der Zeile:

Code: Select all

bin_md5 = ''.join([ chr(int(mysql_md5[i:i+1],16)) for i in
range(0,len(mysql_md5),2)])
Ich bekomme das noch nicht vollständig übersetzt. Dass das base64 encoded werden muss, ist ja klar (s.o.).

Gruß,

Maik