Hi,
ich habe hier einne Ldap-server auf dem Passworte liegen, die mit {crypt}kgfkajnfclk oder ähnlichen Sätzen verschlüsselt sind.
Sinn ist es nun die Passwörter mit PHP zu ändern.
Das ganze schaue ich mir mit Luma an und kann so auch im normalfall Passworte setzen.
nun will ich aber mit PHP diese Passwörter setzen. Wie ich an die Daten herankomme weiß, ebenso wie ich sie mit einem String ersetzen kann.
Die Frage ist nur, wie ich sie verschlüsseln muss, damit sie funktionieren.
Mit:
$pw = crypt ( "test" ) ;
$new["userPassword"] = "{crypt}".$pw ;
funktioniert das ganze nicht.
Kann mir jemadn sagen wie die LDAP-einträge aussehen müssen und wie die vrschlüsselt werden müssen?
MfG Daether
Kurzes Googlen bringt mich (bspw. hier (http://www.openldap.org/lists/openldap-software/200201/msg00710.html)) zu der Vermutung, dass das Passwort eventuell noch base64-kodiert werden muss.
und wie würde das in PHP-Code aussehen?
Ja, lass dir erklären, wie das mit dem Klopapier und dem Hinterteil funktioniert ...
:rtfm:
Verdammt, es kann doch wohl nicht so schwer sein mal zu schauen, ob es vielleicht 'ne Funktion mit base64 im Namen gibt ...?
Original geschrieben von wahsaga
Ja, lass dir erklären, wie das mit dem Klopapier und dem Hinterteil funktioniert ...
:rtfm:
Verdammt, es kann doch wohl nicht so schwer sein mal zu schauen, ob es vielleicht 'ne Funktion mit base64 im Namen gibt ...?
da muss ich unseren neuling mal in schutz nehmen. base64 bringt im manual und google auf anhieb tatsächlich keine brauchbaren ergebnisse, wenn man nicht den befehl kennt.
@daether
guckst du hier (http://www.google.de/search?hl=de&q=base64_encode&btnG=Google-Suche&meta=)
gruß
peter
jahlives
31-10-2006, 21:41
@kropff
Wenn der Neuling aber bei php.net in die Suche nach Fkt einfach base64 eigegeben hätte, dann wäre doch wohl folgendes (http://ch2.php.net/manual-lookup.php?pattern=base64) zum Vorschein gekommen. Die ersten zwei Treffer sind auch gleich aus jenem Bereich den der topicstarter gesucht hat.
Gruss
tobi
Original geschrieben von Kropff
da muss ich unseren neuling mal in schutz nehmen. base64 bringt im manual und google auf anhieb tatsächlich keine brauchbaren ergebnisse, wenn man nicht den befehl kennt.
base64 site:php.net (http://www.google.com/search?&q=base64+site:php.net)
und wenn der php.net nicht kennt? ich kenne diese probleme selber noch aus meinen anfängen, darum bin ich wahrscheinlich ein wenig toleranter als ihr. :)
gruß
peter
Original geschrieben von Kropff
und wenn der php.net nicht kennt?
Dann ist er m.E. nicht der richtige, um an einer LDAP/PHP-Kombination rumzubasteln ...
Ich muss mich entschuldigen, ich hätte wirklich nach der base64 Funktion schauenkönnen bei PHP.
Alerdings funktioniert folgender Code :
$pw = base64_encode ( $config["passwort"] ) ;
$pw = crypt ( $pw , $this->rand_pw ( "2" ) ) ;
$new["userPassword"] = "{crypt}".$pw ;
function rand_pw ( $menge ) {
$zeichen = array ( "a", "b" , "c", "d", "e", "f", "g", "h", "i", "j", "k", "l",
"m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
"A", "B" , "C", "D", "E", "F", "G", "H", "I", "J", "K", "L",
"M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
"0" ,"1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" ) ;
$rand1 = rand ( 0 , count ( $zeichen ) -1 ) ;
$rand2 = rand ( 0 , count ( $zeichen ) -1 ) ;
return ( $zeichen[$rand1].$zeichen[$rand2] ) ;
}