GNU/Linux >> Tutoriels Linux >  >> Linux

Comment créer un mot de passe haché SHA-512 pour shadow ?

Solution 1 :

Voici une ligne :

python -c 'import crypt; print crypt.crypt("test", "$6$random_salt")'

Python 3.3+ inclut mksalt en crypt, ce qui rend son utilisation beaucoup plus facile (et plus sûre) :

python3 -c 'import crypt; print(crypt.crypt("test", crypt.mksalt(crypt.METHOD_SHA512)))'

Si vous ne fournissez pas d'argument à crypt.mksalt (il pourrait accepter crypt.METHOD_CRYPT , ...MD5 , SHA256 , et SHA512 ), il utilisera le plus fort disponible.

L'ID du hachage (numéro après le premier $ ) est lié à la méthode utilisée :

  • 1 -> MD5
  • 2a -> Blowfish (pas dans la glibc principale ; ajouté dans certaines distributions Linux)
  • 5 -> SHA-256 (depuis glibc 2.7)
  • 6 -> SHA-512 (depuis glibc 2.7)

Je vous recommande de rechercher ce que sont les sels et autres et, selon les petits clameurs, de commenter la différence entre le cryptage et le hachage.

Mise à jour 1 :la chaîne produite convient aux scripts shadow et kickstart.
Mise à jour 2 :Avertissement . Si vous utilisez un Mac, consultez le commentaire sur l'utilisation de ceci en python sur un mac où cela ne semble pas fonctionner comme prévu.

Sur macOS, vous ne devriez pas utilisez les versions ci-dessus, car Python utilise la version système de crypt() qui ne se comporte pas de la même manière et utilise un cryptage DES non sécurisé. Vous pouvez utiliser cette plate-forme indépendante d'une doublure (nécessite passlib - installer avec pip3 install passlib ):

python3 -c 'import passlib.hash; print(passlib.hash.sha512_crypt.hash("test"))'

Solution 2 :

Sur Debian, vous pouvez utiliser mkpasswd pour créer des mots de passe avec différents algorithmes de hachage adaptés à /etc/shadow. Il est inclus dans le package whois (selon le fichier apt)

mkpasswd -m sha-512
mkpasswd -m md5

pour obtenir une liste des algorithmes de hachage disponibles, tapez :

mkpasswd -m help 

HTH

Solution 3 :

Meilleure réponse :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)**

Solution 4 :

Voici un court code C pour générer le mot de passe SHA-512 sur divers systèmes d'exploitation de type Unix.

Fichier :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;
}

compiler :

/usr/bin/gcc -lcrypt -o passwd-sha512 passwd-sha512.c

utilisation :

passwd-sha512 <password> <salt (16 chars max)>

Solution 5 :

Perl solution en une seule ligne pour générer un mot de passe haché SHA-512 :

perl -le 'print crypt "desiredPassword", "\$6\$customSalt\$"'

Travaillé sur RHEL 6


Linux
  1. Comment créer un répertoire partagé pour tous les utilisateurs sous Linux

  2. Comment créer manuellement un compte utilisateur Linux

  3. Comment créer des hachages de mot de passe Sha512 sur la ligne de commande ?

  4. Comment créer un mot de passe sécurisé

  5. Comment activer le vieillissement du mot de passe sous Linux avec NIS

Comment créer une clé USB amorçable pour Linux

Comment créer une boucle For avec un nombre variable d'itérations ?

Comment saisir un mot de passe pour plusieurs fenêtres ?

Comment créer un pem pour votre SSL existant

Comment créer un contrôleur de domaine sous Linux pour AD

comment créer une clé ssh pour un autre utilisateur ?