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