Die vorherigen SF-Fragen, die ich gesehen habe, haben zu Antworten geführt, die ein MD5-Hash-Passwort erzeugen.
Hat jemand einen Vorschlag zur Erstellung eines SHA-512-Hash-Passworts? Ich würde einen Einzeiler anstelle eines Skripts bevorzugen, aber wenn ein Skript die einzige Lösung ist, ist das auch in Ordnung.
Aktualisieren
Ersetzen früherer py2-Versionen durch diese:
python3 -c "import crypt;print(crypt.crypt(input('clear-text pw: '), crypt.mksalt(crypt.METHOD_SHA512)))"
linux
authentication
encryption
md5
Belmin Fernandez
quelle
quelle
man 5 shadow
bezeichnet es als "verschlüsseltes Passwort", also stimmte ich diesem Begriff zu./etc/shadow
Inhalte. Du wirst sehen$x$salt$hash
.x
bezeichnet den Algorithmus von sha512 (siehe )crypt
,6
der für moderne Linux-Systeme typisch istman 3 crypt
. Bei jeder der folgenden Antworten wird derselbe Hash erzeugt, sofern Sie ihm dasselbe Salz geben.Antworten:
Hier ist ein Einzeiler:
Python 3.3+ ist
mksalt
in crypt enthalten , wodurch die Verwendung wesentlich einfacher (und sicherer) wird:Wenn Sie nicht ein Argument liefern , um
crypt.mksalt
(es akzeptieren könntecrypt.METHOD_CRYPT
,...MD5
,SHA256
, undSHA512
), wird es die stärksten verfügbaren verwenden.Die ID des Hash (Nummer nach der ersten
$
) hängt mit der verwendeten Methode zusammen:Ich würde empfehlen, nachzuschlagen, was Salze und solche sind, und laut Smallclamgers den Unterschied zwischen Verschlüsselung und Hashing zu kommentieren.
Update 1: Der erzeugte String ist für Shadow- und Kickstart-Skripte geeignet. Update 2: Warnung. Wenn Sie einen Mac verwenden, lesen Sie den Kommentar zur Verwendung dieses Befehls in Python auf einem Mac, auf dem es nicht wie erwartet zu funktionieren scheint.
quelle
random_salt
mit einem tatsächlichen zufälligen Salz.$6asQOJRqB1i2
- das scheint nicht lange genug zu sein, um richtig zu sein!python -c 'import crypt; print crypt.crypt("test", crypt.mksalt(crypt.METHOD_SHA512))'
crypt.crypt("test", "$6$rounds=200000$random_salt")
. 200000 dauert auf meinem aktuellen Laptop ungefähr 100 ms.Unter Debian können Sie mkpasswd verwenden , um Passwörter mit verschiedenen Hashing-Algorithmen zu erstellen, die für / etc / shadow geeignet sind. Es ist im Paket whois enthalten (laut apt-file)
Um eine Liste der verfügbaren Hashing-Algorithmen zu erhalten, geben Sie Folgendes ein:
HTH
quelle
mkpasswd
Programm unter Fedora, aber es ist für diesen Zweck nutzlos.mkpasswd
er spricht, für Debian / Ubuntu. Demmkpasswd
auf Fedora (mindestens bis zu 14) fehlt der-m
Schalter.dpkg -S /usr/bin/mkpasswd
ich es selbst nicht glauben kann: Droot:$6$AbCdE$xyz:...
Sie verwenden sollen:mkpasswd -m sha-512 -S AbCdE
. Mit dem richtigen Passwort sollten Sie den gleichen Hash erhalten.Beste Antwort: Grub-Krypta
quelle
grub-crypt
Befehl haben, ist dies die einfachste und bequemste Möglichkeit, dies zu tun. Es macht keinen Sinn, manuell mit Salz herumzuspielen, wenn man es vermasseln könnte. Das Problem ist, dass immer mehr moderne Systeme GRUB2 haben und daher diesen Befehl nicht enthalten.Hier ist ein kurzer C-Code zum Generieren des SHA-512-Kennworts unter verschiedenen Unix-Betriebssystemen.
Datei:
passwd-sha512.c
kompilieren:
Verwendungszweck:
quelle
Perl One-Liner-Lösung zur Generierung von SHA-512-Hashing-Passwörtern:
perl -le 'print crypt "desiredPassword", "\$6\$customSalt\$"'
Arbeitete an RHEL 6
quelle
Führen Sie die folgende Überprüfung und Änderung an Centos / RHEL-Computern durch, um sicherzustellen, dass alle Kennwort-Hashing-Vorgänge für / etc / shadow mit sha512 ausgeführt werden. Dann können Sie Ihr Passwort ganz normal mit dem Befehl passwd festlegen
quelle
Hier ist ein Einzeiler, der Shell-Befehle verwendet, um ein SHA-512-Hash-Passwort mit einem zufälligen Salt zu erstellen:
Anmerkungen
quelle
whois
Paket von Fedora 18 keinemkpasswd
.Lesen Sie den folgenden Kommentar, um mehr über die Auswirkungen dieser Antwort auf die Sicherheit zu erfahren
Für diejenigen, die an Ruby denken, ist hier ein Einzeiler:
quelle
Dieses Skript funktionierte für mich unter Ubuntu 12.04 LTS: https://gist.github.com/JensRantil/ac691a4854a4f6cb4bd9
Es hat die folgenden Eigenschaften, die einigen der anderen Alternativen fehlen:
quelle
chpasswd
auf Ihrem System haben.HASH-Algen dienen zur Erstellung von MESSAGE-Digests. Sie sind niemals für Kennwörter geeignet, die eine Art HKDF ( http://tools.ietf.org/rfc/rfc5869.txt ) verwenden sollten - siehe PBKDF2 oder BCrypt
quelle
man crypt
sagt mir, dass PBKDF2 nicht unterstützt wird.Sie können es von meinem Github-Repo klonen, wenn Sie möchten: https://github.com/antoncohen/mksha
quelle
Es ist kein Einzeiler, aber es könnte jemandem helfen:
quelle
random
ist nicht kryptografisch sicher,os.urandom
sollte verwendet werden. 8 Zeichen aus einem 56 Zeichen langen Wörterbuch sind viel zu wenig. Sich immer wieder auf einen Stich in Python einzulassen, ist ebenfalls eine schlechte Form (es hat eine O (n ^ 2) -Komplexität)Natürlich greifen Sie einfach auf das zweite Feld zu und können die Datei löschen, sobald Sie sie zu shadow hinzugefügt haben oder für sudo verwenden (wahrscheinlich immer noch shadow).
quelle
Werfen Sie einen Blick auf die Manpage für Crypt (3) und ich denke, Sie werden feststellen, dass das Crypt-Tool so aktualisiert wurde, dass es glibc und sha256 ($ 5) und sha512 ($ 6), mehrere Runden, viel mehr Salt und so weiter verwendet .
Es ist klar, dass SHA512 für die Funktionsweise von / etc / shadow relevant ist.
Trotzdem war diese Webseite sehr hilfreich - insbesondere das MKPASSWD, da dies MEIN Problem löste.
Angesichts eines möglicherweise "verlorenen" Passworts kann ich MKPASSWD und das Salt verwenden, um den SHA512-Hash zu generieren und eine Liste von Kandidatenpasswörtern zu bestätigen / abzulehnen.
Ich würde John the Ripper verwenden - aber zumindest auf meiner Hardware (Raspberry Pi) und meinem Budget (nichts) - John kann das nicht (es scheint das fortgeschrittene Crypt / Glibc-Zeug in der raspbian-freien Version nicht zu unterstützen.
Allerdings, da ich genug Erlaubnis zum Lesen / Schreiben / etc / shadow habe, KÖNNTE ich den Hash einfach überschreiben und mit dem Leben weitermachen ... dies ist eine akademische Übung.
HINWEISE Glibc-Hinweise Die glibc2-Version dieser Funktion unterstützt zusätzliche Verschlüsselungsalgorithmen.
quelle
Wenn Sie eine Alternative zu Einzeilern in Perl / Python benötigen, ist mkpasswd eine gute Ergänzung. Während es im Debian whois-Paket enthalten ist, fehlt es auf CentOS / RHEL-Systemen. Ich habe die Debian-Version von mkpasswd modifiziert und einen stärkeren Salzgenerierungsmechanismus auf Basis von OpenSSL eingebaut. Die resultierende Binärdatei behält alle Befehlszeilenparameter der Debian-Version vollständig bei. Der Code ist auf Github verfügbar und sollte auf jeder Linux- Variante kompiliert werden: mkpasswd
quelle
Ich bin nicht sicher, wie SHA-512 verwandt ist
/etc/shadow
. Diese Passwörter werdencrypt
bearbeitet.Wenn Sie jedoch ein mit SHA-512 gehashtes Passwort möchten, können Sie dies folgendermaßen tun
echo -n the_password | sha512sum
. Sie können die Ausgabe für / etc / shadow nicht verwenden.quelle
echo -n the_password
Sie haben also keine Zeilenumbrüche. </shadow
crypt () werden seit Jahren nicht mehr bearbeitet. Moderne Systeme verwenden mindestens md5.shadow
noch nichtcrypt()
geändert, aber die Funktion wurde aktualisiert, um verschiedene Algorithmen zu unterstützen. Unabhängig davon liefert die in dieser Antwort beschriebene Methode keinen geeigneten Hash für/etc/shadow
. Der Algorithmus ist komplexer als eine einzelne SHA-512-Hash-Runde.