Lösung 1:
Hier ist ein Einzeiler:
python -c 'import crypt; print crypt.crypt("test", "$6$random_salt")'
Python 3.3+ enthält mksalt
in crypt, was die Verwendung viel einfacher (und sicherer) macht:
python3 -c 'import crypt; print(crypt.crypt("test", crypt.mksalt(crypt.METHOD_SHA512)))'
Wenn Sie crypt.mksalt
kein Argument angeben (Es könnte crypt.METHOD_CRYPT
akzeptieren , ...MD5
, SHA256
, und SHA512
), wird die stärkste verfügbare verwendet.
Die ID des Hashs (Zahl nach dem ersten $
) hängt mit der verwendeten Methode zusammen:
- 1 -> MD5
- 2a -> Blowfish (nicht in Mainline glibc; in einigen Linux-Distributionen hinzugefügt)
- 5 -> SHA-256 (seit glibc 2.7)
- 6 -> SHA-512 (seit glibc 2.7)
Ich würde empfehlen, dass Sie nachschlagen, was Salze und dergleichen sind, und gemäß Smallclamgers den Unterschied zwischen Verschlüsselung und Hashing kommentieren.
Update 1:Der erzeugte String ist für Shadow- und Kickstart-Skripte geeignet.
Aktualisierung 2:Warnung . Wenn Sie einen Mac verwenden, sehen Sie sich den Kommentar zur Verwendung in Python auf einem Mac an, auf dem es nicht wie erwartet zu funktionieren scheint.
Unter macOS sollten Sie nicht Verwenden Sie die obigen Versionen, da Python die Systemversion von crypt()
verwendet die sich nicht gleich verhält und unsichere DES-Verschlüsselung verwendet. Sie können diesen plattformunabhängigen Einzeiler verwenden (erfordert passlib – installieren Sie mit pip3 install passlib
):
python3 -c 'import passlib.hash; print(passlib.hash.sha512_crypt.hash("test"))'
Lösung 2:
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-Datei)
mkpasswd -m sha-512
mkpasswd -m md5
Um eine Liste der verfügbaren Hashing-Algorithmen zu erhalten, geben Sie Folgendes ein:
mkpasswd -m help
HTH
Lösung 3:
Beste Antwort:grub-crypt
Usage: grub-crypt [OPTION]...
Encrypt a password.
-h, --helpPrint this message and exit
-v, --version Print the version information and exit
--md5 Use MD5 to encrypt the password
--sha-256 Use SHA-256 to encrypt the password
**--sha-512 Use SHA-512 to encrypt the password (default)**
Lösung 4:
Hier ist ein kurzer C-Code zum Generieren des SHA-512-Passworts auf verschiedenen Unix-Betriebssystemen.
Datei:passwd-sha512.c
#define _XOPEN_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
int main(int argc, char *argv[]) {
if ( argc < 3 || (int) strlen(argv[2]) > 16 ) {
printf("usage: %s password salt\n", argv[0]);
printf("--salt must not larger than 16 characters\n");
return;
}
char salt[21];
sprintf(salt, "$6$%s$", argv[2]);
printf("%s\n", crypt((char*) argv[1], (char*) salt));
return;
}
zu kompilieren:
/usr/bin/gcc -lcrypt -o passwd-sha512 passwd-sha512.c
Verwendung:
passwd-sha512 <password> <salt (16 chars max)>
Lösung 5:
Perl Einzeiler-Lösung zum Generieren von SHA-512-gehashten Passwörtern:
perl -le 'print crypt "desiredPassword", "\$6\$customSalt\$"'
Funktionierte auf RHEL 6