Mit ruby zu generieren SHA512-crypt-style hashes formatiert /etc/shadow???
Möchte ich generieren, SHA512 Hash-Passwörter für die Aufnahme direkt in eine /etc/shadow-Datei für die Verwendung mit Koch, die die Benutzer-Ressource. Normalerweise würde ich gehen, um die stdlib ist Digest
Bibliothek für diese, aber es nicht erzeugen den hash in das richtige format:
ruby-1.9.2-p136 :001 > require 'digest/sha2'
=> true
ruby-1.9.2-p136 :002 > Digest::SHA512.hexdigest('test')
=> "ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff"
Format, dass der shadow-Datei will, ist:
$6$/ShPQNXV$HJnibH9lw01qtYqyJQiBf81ggJB2BGUvKA7.kv39HGCeE.gD4C/SS9zAf5BrwOv3VJzvl99FpHYli9E8jykRC0
Dinge habe ich mir angeschaut:
- Openssl "dgst" - Modul liefert das gleiche format .hexdigest, und die "passwd" - Modul nicht enthalten SHA512 unterstützt.
- String#crypt, das unterstützt aber nicht SHA512. (edit: dies ist nur der Fall auf OSX - modernen Linux-Distributionen funktionieren wird, wenn Sie angeben, "$6$somesalt" wie das Salz)
- ruby-crypt Juwel, aber es nicht unterstützen, SHA512
Zum Vergleich, etwas, das nicht zurückkehren, das richtige format ist, das PHP Krypta, aber ich möchte lieber nicht haben, um exec aus PHP für etwas, das einfach sein sollte.
InformationsquelleAutor Gabe Martin-Dempesy | 2011-03-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach weiterer recherche:
Den Befehl mkpasswd, die auf debian ist in der
whois
Paket (seltsam):mkpasswd -m sha-512
String#crypt macht eigentlich call die Plattform die systemeigene crypt () - Aufruf, aber OSX (bis 10.6) keine Unterstützung für andere Verschlüsselungen auf. "Passwort".crypt('$6$somesalt') wird auf Linux-Plattformen funktioniert.
wäre daran interessiert, eine native ruby-Lösung: stackoverflow.com/questions/9043017/...
InformationsquelleAutor Gabe Martin-Dempesy