Rolf: crypt oder htpasswd

Liebe Forumer,

mein Provider stellt auf LINUX die Funktion "htpasswd" zur Verfügung, damit kann ich mein Passwordfile komplett erstellen. Dieses PasswortFile soll Apache-gefällig sein. Zum Vergleich habe ich mal mit einem PERLScript
---
$crypted_password = crypt "otto", IN;
print "$crypted_password\n";
---
das Passwort "otto" verschlüsselt, erhalte jedoch damit einen anderen crypted_string als mit der o.g. LINUX Funktion.

Wer kann mich da mal ein bissl aufklären? Welcher String ist nun richtig und vor Allem: Apache-Compliant?

Viele Grüße, Rolf

  1. Hallo,

    das liegt schlicht und einfach am "salt". Das ist der zweite Parameter des crypt Befehls. Salt ist ein beliebige zweistellige Zeichenfolge. Diese beiden Zeichen finden sich übrigens am anfang des verschlüsselten Passworts wieder.

    Das Crypted Passwort ist nur dann identisch wenn du das selbe salt verwendest. Apache ist es egal welches Salt du zur verschlüsselung angewendet hat. Zur bildung der Passwort Hashes empfehle ich eine Funktion wie folgende:

    crypt("passwort",join (//, ('.', '/', 0..9,'A'..'Z','a'..'z')[rand 64, rand 64]))

    Liebe Forumer,

    mein Provider stellt auf LINUX die Funktion "htpasswd" zur Verfügung, damit kann ich mein Passwordfile komplett erstellen. Dieses PasswortFile soll Apache-gefällig sein. Zum Vergleich habe ich mal mit einem PERLScript

    $crypted_password = crypt "otto", IN;
    print "$crypted_password\n";

    das Passwort "otto" verschlüsselt, erhalte jedoch damit einen anderen crypted_string als mit der o.g. LINUX Funktion.

    Wer kann mich da mal ein bissl aufklären? Welcher String ist nun richtig und vor Allem: Apache-Compliant?

    Viele Grüße, Rolf

  2. Hi,

    Wer kann mich da mal ein bissl aufklären? Welcher String ist nun richtig und vor Allem: Apache-Compliant?

    Dieser Perl-Code ist produziert dasselbe was htpasswd macht:

    sub Crypt_Password {
      my ($pwdplain) = $_[0];
      my $salt = seedchar().seedchar();;
      my $result;
        
      $result = crypt($pwdplain,$salt);
      return $result;
      ##########################
      sub seedchar {  # from Randal Schwarz
        ('a'..'z','A'..'Z','0'..'9','.','/')[rand(64)];
      }
    }

    Ich hab gerade ein Skript htpasswd.pl auf meine Freecodesammlung getan,
    das eine Passwd-Zeile fuer Apache erstellt.

    Ciao,
      Wolfgang

  3. Hallo Wolfgang und Thomas,

    vielen Dank Euch beiden! Mir ist nun wieder einiges klaro geworden. Vor allem dieses: "Apache ist es egal welches Salt du zur verschlüsselung ..."

    Somit habe ich jetzt den Mut, das mal am Telnet auszuprobieren ;-)

    N' schönen Abend auch, Rolf (winkend)

    1. Hi Rolf!

      "Apache ist es egal welches Salt du zur verschlüsselung ..."

      Wenn Du auch noch wissen willst, warum es das Salz gibt...:<../../sfarchiv/2000_1/t11109.htm>

      Viele Grüße nach Erfurt und'n schönes Wochenende, Gruß Frank

      1. Hi Frank,

        herzlichen Dank, genau das will ich natürlich auch wissen, traute mich jedoch nicht danach zu suchen ;-)

        Viele Grüße nach Berlin, Rolf

        PS: Mein Menu ist in Arbeit.