Machen Sie aus Benutzername und Passwort eine Zeile Benutzer:Hash für eine .htpasswd-Datei von Apache. Alle Formate - Klartext, crypt, apr1, SHA-1 und bcrypt - werden im Browser berechnet und gegen openssl passwd, Apache htpasswd und glibc crypt geprüft; das Passwort verlässt den Tab nicht.
Läuft lokal in deinem BrowserBenutzername und Passwort eingeben, Format wählen und auf htpasswd-Eintrag erzeugen klicken. Die Seite liefert eine Zeile Benutzer:Hash, die direkt in eine .htpasswd-Datei passt, und nennt vorher die Einschränkungen des gewählten Formats.
Gerechnet wird vollständig im Browser. Der apr1-Eintrag stimmt mit openssl passwd -apr1 und htpasswd -m überein, der bcrypt-Eintrag mit den $2y$-Zeilen aus htpasswd -B, und der SHA-1-Eintrag mit der {SHA}-Form von htpasswd -s. Das Passwort wird nicht hochgeladen, und beim Tippen verlässt keine Anfrage den Tab.
plain speichert das Passwort im Klartext, und httpd akzeptiert das nur unter Windows und Netware. crypt ist die alte Unix-Routine: 13 Zeichen, ein Salt aus 2 Zeichen, und nur die ersten 8 Zeichen des Passworts - der Rest wird still verworfen, weshalb eine lange Passphrase hier an Wirkung verliert.
MD5 (apr1) schreibt $apr1$Salt$Hash: ein Apache-eigenes Verfahren mit 1000 MD5-Runden über Passwort und 8-Zeichen-Salt, das htpasswd -m erzeugt. SHA-1 schreibt {SHA} gefolgt von der Base64-Kodierung eines SHA-1-Hashs; anders als die übrigen Formate hat es kein Salt, ein Passwort ergibt also immer dieselbe Zeile. bcrypt schreibt $2y$Kosten$Salt$Hash, mit 16 zufälligen Salt-Bytes und 2^Kosten Wiederholungen des Schlüsselplans.
Eine .htpasswd-Datei enthält eine Zeile Benutzer:Hash pro Konto und wird von Apache über AuthUserFile gelesen. Ein minimal geschütztes Verzeichnis nutzt AuthType Basic, AuthName "Restricted", AuthUserFile /etc/apache2/.htpasswd und Require valid-user. Legen Sie die Datei außerhalb des Dokumentenstamms ab, nur lesbar für den Webserver-Benutzer.
Auf der Kommandozeile erzeugt htpasswd dieselben Zeilen: -B für bcrypt (-C setzt die Kosten), -m für apr1, -s für SHA-1 und -d für crypt. Eine Datei darf Formate mischen, eine alte crypt-Zeile und eine neue bcrypt-Zeile können also nebeneinander stehen; prüfen Sie jede Zeile mit htpasswd -vb Datei Benutzer.
Die HTTP-Basisauthentifizierung sendet das Passwort bei jeder Anfrage base64-kodiert, die Verbindung muss also HTTPS sein: der Hash schützt die Datei, nicht die Leitung. crypt, SHA-1 und apr1 sind schnell zu berechnen - genau das will ein Angreifer mit der gestohlenen Datei; nutzen Sie bcrypt für neue Einträge und ersetzen Sie alte Zeilen, sobald Konten angefasst werden.
Der Generator speichert und überträgt das Passwort nicht: gerechnet wird in der Seite, das Salt kommt vom Zufallsgenerator des Browsers. Kosten 10 brauchen hier etwa eine Fünftelsekunde, Kosten 12 rund eine Sekunde; deshalb endet das Feld bei 14, obwohl htpasswd bis 17 akzeptiert.