GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie erstelle ich ein SHA-512-gehashtes Passwort für Shadow?

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


Linux
  1. So erstellen Sie ein freigegebenes Verzeichnis für alle Benutzer in Linux

  2. So erstellen Sie ein Windows-Image für OpenStack

  3. So erstellen Sie manuell ein Linux-Benutzerkonto

  4. Wie erstelle ich Sha512-Passwort-Hashes in der Befehlszeile?

  5. Wie erstelle ich eine For-Schleife mit einer veränderbaren Anzahl von Iterationen?

So packen Sie Python-Anwendungen für Linux

So erstellen Sie ein bootfähiges USB-Laufwerk für Linux

So erstellen Sie eine passwortgeschützte ZIP-Datei unter Linux

Wie man sudo dazu bringt, sich das Passwort länger zu merken

So erstellen Sie einen Domänencontroller unter Linux für AD

Wie erstellt man einen SSH-Schlüssel für einen anderen Benutzer?