Merci pour ton exemple Funkygoby.
Je voudrais identifier le (ou les) critère(s) qui permet(tent) de distinguer hash et encryptions dans la liste suivante :
echo test | md5sum
d8e8fca2dc0f896fd7cb4cb0031ba249 -
echo test | openssl md5
(stdin)= d8e8fca2dc0f896fd7cb4cb0031ba249
openssl passwd test
Mp9NXZoGai9yk
mkpasswd -5 test
$1$7E8gQviX$G5adwIHdGakVUCEDWnlm5.
mkpasswd test
Z3U2SBjfKZ1U2
Je constate que si l’on répète chacune de ces commandes une seconde fois (avec la même chaîne “test”) alors :
- dans les deux premiers cas (semble-t-il, la même commande sous deux noms différents) on obtient le même résultat que lors de la première fois ;
- dans les trois derniers cas on obtient un résultat différent que lors de la première fois.
Cela signifie-t-il que les deux premières commandes (en fait la même) sont des hash et les trois dernières des encryptions ?
Cependant “man openssl” indique pour la commande standard “passwd” :
“Production de mots de passe hachés”.
À priori cela semble invalider le critère basé sur la répétition ou non du résultat. Mais peut-être qu’en fait la commande “openssl passwd” encrypte ET hash, de sorte qu’il n’y a plus réversibilité à la chaîne d’origine.
En conclusion le critère de réversibilité à la chaïne d’origine resterait donc valable : réversibilité --> hash (sans encryption).
Ce raisonnement est-il correct ?
PS : une autre question qui me vient à l’esprit : quelle est la relation logique entre mot de passe “idéal” et encryption :
- mdp --> encryption ?
- mdp <-- encryption ?
- mdp <–> encryption ?
- aucune des trois ?