.htusers Datei passwörter verschlüsseln mit Perl
Ark
- perl
0 !!! Zusatz !!!
Ark2 Christian Kruse0 Ark0 wahsaga0 Christian Kruse0 Ark
0 wahsaga0 agapanthus
hiho
Habe derzeit folgenden Passwortschutz mit .htaccess
AuthType Basic
AuthName 'Please authorize'
AuthUserFile /home/ark/.htpasswd
order deny,allow
allow from all
require valid-user
die .htpasswd Datei enthält diese Zeile:
user:pauONM/HSu9pM
Damit kann ich mich mit user/pass erfolgreich einloggen.
Interessant ist:
Auf http://webmaster.gulli.com/tools/htaccessgenerator.html
wurde mir oben genanntes user:pauONM/HSu9pM ausgegegeben,
als ich dort angab mich mit user/pass einloggen zu wollen.
Selfhtml sagt "pass" ist verschlüsselt für Apache 0p3A2aYbTPqXw also:
user:0p3A2aYbTPqXw
1. Frage
Die Werte "pauONM/HSu9pM" (gulli) und "0p3A2aYbTPqXw" (selfhtml)
haben absolut keine Ähnlichkeit miteinander,
und dennoch funktionieren beide mit Passwort "pass".
Wie können beide mit "pass" als Passwort funktionieren,
wenn beide komplett unterschiedlich aussehen??
2. Frage
Mit welcher Funktion in Perl muss ich das verschlüsseln?
Ein Perl-Script soll das Passwort erstellen und in der .htpasswd
abspeichern, damit eingeloggte User selber ihre Passwörter ändern können.
Nach welchem verfahren muss ich das Passwort herstellen in Perl?
Angeblich ist es bei Apache 1.3 und Apache 2.x komplett anders
hergestellt das Passwort.
Dangge :P
Ark
hiho
Schreckensmeldung:
Selfhtml bring jedesmal ein neues Passwort als verschlüsselung
für das Wort "pass" heraus!!
http://aktuell.de.selfhtml.org/cgi-bin/cryptform.pl?password=pass
(Bitte reload drücken)
Warum ist das jedesmal ein anderes Passwort und immer "pass" ??
Drüber steht es würde mit crypt gemacht.
Ist aber glaub ich ein anderes crypt als in Perl?
Apache 2.x verwendet aber was anderes, ne?
Dangge :P
Ark
你好 Ark,
Selfhtml bring jedesmal ein neues Passwort als verschlüsselung
für das Wort "pass" heraus!!http://aktuell.de.selfhtml.org/cgi-bin/cryptform.pl?password=pass
(Bitte reload drücken)Warum ist das jedesmal ein anderes Passwort und immer "pass" ??
Weil der Salt zufaellig ist... ;-)
Drüber steht es würde mit crypt gemacht.
Ist aber glaub ich ein anderes crypt als in Perl?
Nein, es ist dasselbe.
Apache 2.x verwendet aber was anderes, ne?
Nein.
再见,
CK
你好 Ark,
- Frage
Die Werte "pauONM/HSu9pM" (gulli) und "0p3A2aYbTPqXw" (selfhtml)
haben absolut keine Ähnlichkeit miteinander,
und dennoch funktionieren beide mit Passwort "pass".Wie können beide mit "pass" als Passwort funktionieren,
wenn beide komplett unterschiedlich aussehen??
Weil es keine Verschluesselung, sondern nur eine Pruefsummenberechnung
ist. Dabei ist eine zufaellige Komponente dabei, Salt genannt. Dieser wird
in den ersten zwei Byte (Buchstaben in diesem Fall) der Pruefsumme
gespeichert. Benutzt du immer denselben Salt, bekommst du auch immer
dasselbe Ergebnis. Benutzt du unterschiedliche Salts, bekommst du auch
unterschiedliche Ergebnisse... ;-)
- Frage
Mit welcher Funktion in Perl muss ich das verschlüsseln?
crypt() heist die Funktion.
Ein Perl-Script soll das Passwort erstellen und in der .htpasswd
abspeichern, damit eingeloggte User selber ihre Passwörter ändern können.
In dem Fall wuerde ich zur Authentifizierung lieber ein Modul wie
mod_auth_mysql oder mod_auth_db benutzen, also Datenbank-Module, damit
ist a) der Zugriff schneller und b) der Zugriff einfacher, du musst dann
nicht jedesmal die Datei neu parsen.
Nach welchem verfahren muss ich das Passwort herstellen in Perl?
Angeblich ist es bei Apache 1.3 und Apache 2.x komplett anders
hergestellt das Passwort.
Nein, da hat sich nichts geaendert.
再见,
CK
hiho Christian
Deine Antwort war sehr hilfreich, dankschön!
In dem Fall wuerde ich zur Authentifizierung lieber ein Modul wie
mod_auth_mysql oder mod_auth_db benutzen, also Datenbank-Module, damit
ist a) der Zugriff schneller und b) der Zugriff einfacher, du musst dann
nicht jedesmal die Datei neu parsen.
Geht das denn mit der .htaccess ganz normal?
Ich fand immer nur infos wie ich mit .htaccess und .htpasswd bzw. .htgroups
arbeite, aber dass man statt der passwortdatei eine Datenbank
verwenden kann ist mir neu. (Oder verstand ich Dich da falsch?)
Wo gibt es infos dazu?
Wird das per default unterstützt?
Geht das mit Apache 1.x und 2.x ?
Wo gibts ein Tutorial bitte?
Dangge! :P
Ark
hi,
In dem Fall wuerde ich zur Authentifizierung lieber ein Modul wie
mod_auth_mysql oder mod_auth_db benutzenWo gibt es infos dazu?
http://httpd.apache.org/docs/mod/index.html
gruß,
wahsaga
你好 Ark,
In dem Fall wuerde ich zur Authentifizierung lieber ein Modul wie
mod_auth_mysql oder mod_auth_db benutzen, also Datenbank-Module, damit
ist a) der Zugriff schneller und b) der Zugriff einfacher, du musst dann
nicht jedesmal die Datei neu parsen.Geht das denn mit der .htaccess ganz normal?
Jo, klar. Du musst nur einige Direktiven auswechseln (im Fall mod_auth_db:
AuthDBUserFile statt AuthUserFile, AuthDBGroupFile statt AuthGroupFile)
Wo gibt es infos dazu?
In der Apache-Doku, die hatte Wahsaga ja schon verlinkt :)
Wird das per default unterstützt?
mod_auth_db und mod_auth_dbm sind per Default dabei und aktiviert,
mod_auth_mysql muesstest du erst installieren.
Geht das mit Apache 1.x und 2.x ?
Ja.
Wo gibts ein Tutorial bitte?
Keine Ahnung? ;-)
再见,
CK
hiho CK
mod_auth_db und mod_auth_dbm sind per Default dabei und aktiviert,
mod_auth_mysql muesstest du erst installieren.
Wenn das Modul für MySQL nicht per default dabei ist,
bringt mir wahrscheinlich das ganze default-zeugs auch nichts,
weil mein webspace auf einem shared host ist
und ich nichts installieren kann dort.
Sehe ich das richtig oder kann ich allein mit den default sachen auch was anfangen?
Dangge!
Ark
你好 Ark,
mod_auth_db und mod_auth_dbm sind per Default dabei und aktiviert,
mod_auth_mysql muesstest du erst installieren.Wenn das Modul für MySQL nicht per default dabei ist,
bringt mir wahrscheinlich das ganze default-zeugs auch nichts,
weil mein webspace auf einem shared host ist
und ich nichts installieren kann dort.
Was ist denn das fuer eine Begruendung? ;-)
Sehe ich das richtig oder kann ich allein mit den default sachen auch
was anfangen?
Ja, klar -- Datenbanksysteme sind nicht immer Server-Client-basiert.
mod_auth_db benutzt das BerkeleyDB-DBMS, das auf Datei-Basis arbeitet.
再见,
CK
hi,
- Frage
Die Werte "pauONM/HSu9pM" (gulli) und "0p3A2aYbTPqXw" (selfhtml)
haben absolut keine Ähnlichkeit miteinander,
und dennoch funktionieren beide mit Passwort "pass".Wie können beide mit "pass" als Passwort funktionieren,
wenn beide komplett unterschiedlich aussehen??
die ersten beiden zeichen sind das "salz in der suppe" ...
der verwendete verschlüsselungs-algorithmus bekommt ein sog. salt-argument übergeben, eben die ersten zwei zeichen. werden diese anders gewählt, ändert sich auch das verschlüsselungsergebnis.
da dieses salt mit in deiner .htpasswd-datei drin steht, weiß der server auch, dass er das vom client übergebene passwort wieder mit dem gleichen salt-argument verschlüsseln muss, um vergleichen zu können.
gruß,
wahsaga
Moin.
- Frage
Die Werte "pauONM/HSu9pM" (gulli) und "0p3A2aYbTPqXw" (selfhtml)
haben absolut keine Ähnlichkeit miteinander,
und dennoch funktionieren beide mit Passwort "pass".Wie können beide mit "pass" als Passwort funktionieren,
wenn beide komplett unterschiedlich aussehen??
Die Antwort findest Du im Archiv: Das "Salz in der Suppe" beim crypt-Befehl und Frage zu crypt() und dem "Salz in der Suppe"
- Frage
Mit welcher Funktion in Perl muss ich das verschlüsseln?
Und auch diese Antwort findest Du in den beiden o.g. Beiträgen.
Schönen Tag,
Gruß Frank