Les questions précédentes de SF que j'ai vues ont conduit à des réponses qui produisent un mot de passe haché MD5.
Quelqu'un a-t-il déjà suggéré de créer un mot de passe haché SHA-512? Je préférerais une ligne au lieu d'un script, mais si un script est la seule solution, c'est très bien aussi.
Mise à jour
Remplacer les versions précédentes de py2 par celle-ci:
python3 -c "import crypt;print(crypt.crypt(input('clear-text pw: '), crypt.mksalt(crypt.METHOD_SHA512)))"
linux
authentication
encryption
md5
Belmin Fernandez
la source
la source
man 5 shadow
se réfère à lui comme "mot de passe crypté" alors je suis allé avec ce terme./etc/shadow
contenu. Vous verrez$x$salt$hash
.x
désigne l'algorithme utilisé parcrypt
, avec6
étant typique des linux modernes, qui est sha512 (voirman 3 crypt
). L'une ou l'autre des réponses ci-dessous produira le même hash, à condition de lui donner le même sel.Réponses:
Voici un one-liner:
Python 3.3+ inclut
mksalt
dans crypt , ce qui rend beaucoup plus facile (et plus sûr) d’utiliser:Si vous ne fournissez pas un argument
crypt.mksalt
(il pourrait acceptercrypt.METHOD_CRYPT
,...MD5
,SHA256
etSHA512
), il utilisera le plus fort disponible.L'identifiant du hash (numéro après le premier
$
) est lié à la méthode utilisée:Je vous recommanderais de rechercher ce que sont les sels et commenter et ainsi que le décrivent les différences 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, voyez le commentaire sur son utilisation en python sur un Mac où cela ne semble pas fonctionner comme prévu.
la source
random_salt
par un sel aléatoire réel.$6asQOJRqB1i2
- ça ne semble pas assez long pour être correct!python -c 'import crypt; print crypt.crypt("test", crypt.mksalt(crypt.METHOD_SHA512))'
crypt.crypt("test", "$6$rounds=200000$random_salt")
. 200000 prend environ 100 ms sur mon ordinateur portable actuel.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 paquet whois (selon apt-file)
pour obtenir une liste des types d'algorithmes de hachage disponibles:
HTH
la source
mkpasswd
programme (une partie de l’attente) sous Fedora, mais il est inutile à cet effet.mkpasswd
il parle est destinée à Debian / Ubuntu. Le commutateurmkpasswd
sur Fedora (au moins 14) manque le-m
commutateur.dpkg -S /usr/bin/mkpasswd
je ne pouvais pas y croire moi-même: Droot:$6$AbCdE$xyz:...
vous devez utiliser:mkpasswd -m sha-512 -S AbCdE
. Avec le mot de passe correct, vous devriez obtenir le même hash.Meilleure réponse: grub-crypt
la source
grub-crypt
commande, c'est le moyen le plus sûr et le plus pratique de le faire. Pas la peine de jouer avec les sels manuellement quand on peut tout gâcher. Le problème est que de plus en plus de systèmes modernes ont GRUB2 et n'incluront donc pas cette commande.Voici un code C court pour générer le mot de passe SHA-512 sur différents systèmes d'exploitation de type Unix.
Fichier:
passwd-sha512.c
compiler:
usage:
la source
La solution Perl one-liner pour générer le mot de passe haché SHA-512:
perl -le 'print crypt "desiredPassword", "\$6\$customSalt\$"'
Travaillé sur RHEL 6
la source
Pourquoi ne pas effectuer la vérification et la modification suivantes sur les machines Centos / RHEL pour vous assurer que tout le hachage du mot de passe pour / etc / shadow est effectué avec sha512. Ensuite, vous pouvez simplement définir votre mot de passe normalement avec la commande passwd
la source
Voici un one-liner qui utilise des commandes shell pour créer un mot de passe haché SHA-512 avec un sel aléatoire:
Remarques
la source
whois
paquet de Fedora 18 n'en fournit aucunemkpasswd
.Lisez le commentaire ci-dessous pour en savoir plus sur les implications de cette réponse pour la sécurité.
Pour ceux de la mentalité Ruby, voici un one-liner:
la source
Ce script a fonctionné pour moi sur Ubuntu 12.04 LTS: https://gist.github.com/JensRantil/ac691a4854a4f6cb4bd9
Il présente les caractéristiques suivantes, qui font défaut à d’autres alternatives:
la source
chpasswd
sur votre système.Les algues HASH servent à produire des résumés MESSAGE, ils ne conviennent jamais aux mots de passe, qui devraient utiliser une sorte de HKDF ( http://tools.ietf.org/rfc/rfc5869.txt ) - voir PBKDF2 ou BCrypt
la source
man crypt
me dit que PBKDF2 n'est pas supporté.Vous pouvez le cloner depuis mon dépôt Github si vous le souhaitez: https://github.com/antoncohen/mksha
la source
Ce n'est pas un one-liner, mais cela pourrait aider quelqu'un:
la source
random
n'est pas cryptographiquement sécurisé,os.urandom
doit être utilisé. 8 caractères d'un dictionnaire de 56 caractères, c'est trop peu. Concaténer une piqûre encore et encore en python est une mauvaise forme aussi (il a une complexité de O (n ^ 2))Évidemment, vous saisissez simplement le deuxième champ et pouvez supprimer le fichier une fois que vous l'avez ajouté à shadow ou pour l'utiliser avec sudo (toujours très probablement shadow).
la source
Jetez un coup d’oeil à la page de manuel de crypt (3) et je pense que vous constaterez que l’outil de cryptage a été mis à jour pour utiliser glibc et sha256 (5 $) et sha512 (6 $), plusieurs tours, un sel beaucoup plus gros, etc. .
Clairement, SHA512 est pertinent pour le fonctionnement de / etc / shadow.
Cela dit, cette page Web a été très utile - en particulier le MKPASSWD, car cela a résolu MON problème.
Avec un mot de passe potentiellement "perdu", je peux utiliser MKPASSWD et le sel pour générer le hachage SHA512 et confirmer / refuser une liste de mots de passe candidats.
Je voudrais utiliser John the ripper - mais au moins sur mon matériel (Raspberry Pi) et mon budget (rien) - John ne peut pas le faire (il ne semble pas prendre en charge les fonctions avancées de crypt / glibc de la version gratuite de Raspbian.
Remarquez que, puisque j'ai assez de permission pour lire / écrire / etc / shadow, je pourrais simplement écraser le hash et poursuivre la vie ... c'est un exercice académique.
NOTES Notes Glibc La version glibc2 de cette fonction supporte des algorithmes de cryptage supplémentaires.
la source
Si vous avez besoin d'une alternative aux one-liners écrits en perl / python, mkpasswd est une bonne correspondance. Bien qu'il soit inclus dans le paquet Whois Debian, il manque sur les systèmes CentOS / RHEL. J'ai modifié la version Debian de mkpasswd et inclus un mécanisme de génération de sel plus fort basé sur OpenSSL. Le binaire résultant conserve intégralement tous les paramètres de ligne de commande de la version Debian. Le code est disponible sur github et devrait être compilé sous n’importe quelle version de Linux: mkpasswd
la source
Je ne suis pas sûr de savoir comment SHA-512 est lié
/etc/shadow
. Ces mots de passe sontcrypt
édités.Mais si vous voulez un mot de passe haché avec SHA-512, vous pouvez le faire en
echo -n the_password | sha512sum
. Vous ne pouvez pas utiliser la sortie pour / etc / shadow.la source
echo -n the_password
donc vous n'êtes pas en train de hacher la nouvelle ligne. </ pedant>shadow
ne sont plus cryptés () depuis des années. Les systèmes modernes utilisent au moins md5.shadow
sont toujourscrypt()
édités, mais la fonction a été mise à jour pour prendre en charge plusieurs algorithmes différents. Quoi qu'il en soit, la méthode décrite dans cette réponse ne produit pas de hachage approprié/etc/shadow
. L'algorithme est plus complexe qu'un seul tour de hachage SHA-512.