Passwort für .htusers in php erzeugen

Gast #3083379
Lesenswert?

Nabend!

Ich versuche seit Tagen erfolglos meine Passwörter mit crypt zu 
verschlüsseln.

Aber irgendwie brauch ich mal nen Denk-Schubs.

Mein Test-PHP-Script sieht so aus:
1
<?php
2
echo crypt($x, CRYPT_SALT_LENGTH)."<br>";
3
echo crypt($x, CRYPT_STD_DES)."<br>";
4
echo crypt($x, CRYPT_EXT_DES)."<br>";
5
echo crypt($x, CRYPT_MD5)."<br>";
6
echo crypt($x, CRYPT_BLOWFISH)."<br>";
7
echo crypt($x);
8
?>
Ich gebe das zu verschlüsselnde Passwort mit "crypt.php?x=passwort" im 
Browser ein und erhalte dann 6 Varianten dieses Passwortes. Aber 
keines wird vom Apachen als richtig erkannt.

Hier noch meine .htusers-Datei, die ich zu Testzwecken benutze:
1
user1:eOPiDUHy0Frnm
2
user2:MmavXgWYzNsF0
3
user3:gwfzGt.5PBn3vxzmL1luy.
Wenn ich das Passwort via Selfhtml-Homepage erzeuge, dann geht alles wie 
gewünscht!

Was mich auch wundert, ist dass das von Selfhtml erzeugte Passwort 13 
Zeichen lang ist. Mit crypt("passwort") bekomme ich ein 22 Zeichen 
langes Passwort.

Bei user1 habe ich den vorderen Teil abgeschnitten, sodass 13 Zeichen 
verbleiben
bei user2 habe ich den hinteren Teil abgeschnitten, sodass 13 Zeichen 
verbleiben
bei user3 habe ich alles so gelassen wie es ist.

Aber keine der Varianten funktioniert. Wer weiß da Rat?
Gast #3083416
Lesenswert?

In der Doku steht, dass das Passwort mit crypt() erzeugt werden kann.

Mache ich ja auch, z.B. crypt("geheim");

Da kommt dann "$1$qYL6qU8k$MXN.S6qpPrg6fucU20m2w/" raus
                           ^^^^^^^^^^^^^^^^^^^^^^
Laut Doku ist das Passwort ab hier enthalten. Alles davor ist 
Salt-Gedöns.

Kern meiner Frage ist, wie erzeuge ich daraus den 13 Zeichen langen 
Crypt-Code?
Gast #3086602
Lesenswert?

Läubi .. schrieb:
> Wieso nicht? Woher soll der Server den den kenne wenn er weder
> a) angehängt ist
>  noch
> b) per Konvetion gegeben ist

zu a) der Salt steht doch im Klartext am Anfang des verschlüsselten 
Passwortes. Den braucht sich der Server nur vorn "ablesen".

zu b) crypt() bringt ohne Salt-Parameter schon von sich aus einen 
Zufalls-Salt mit (Test: einfach dasselbe Passwort wiederholt 
verschlüsseln lassen -> ist jedesmal ein anderes Ergebnis). Deswegen bin 
ich davon ausgegangen, dass ich den Salt nicht noch explizit vorgeben 
muss (KISS-Prinzip). Aber mit dem Default-Salt geht's anscheinend nicht 
- warum auch immer.

Nunja, jetzt läuft es und ich bin zufrieden :)


Hier noch meine Umsetzung (als Salt gebe ich eine 2stellige Zufallszahl 
zwischen 10 und 99 vor)
1
<?php
2
$u="user";
3
$p="password";
4
echo "$u:".crypt($p,rand(10,99));
5
?>

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren