Outil pour utiliser la fonction crypt() de hachage/chiffrement de mots de passe avec MD5, Blowfish, bCrypt, SHA256 ou SHA512.
Hachage avec Crypt() - dCode
Catégorie(s) : Cryptographie Moderne
dCode est gratuit et ses outils sont une aide précieuse dans les jeux, les maths, les énigmes, les géocaches, et les problèmes à résoudre au quotidien !
Une suggestion ? un problème ? une idée ? Écrire à dCode !
Le seul moyen de déchiffrer un mot de passe hashé avec 'crypt()' est d'utiliser une attaque brute-force, en testant des millions/milliards de mots de passe. dCode recommande des outils comme Hashcat https://hashcat.net/hashcat/
Crypt est une fonction développée pour le stockage des mots de passes (principalement sur les systèmes UNIX) qui se base sur les fonctions de hachage. Elle prend en paramètre une chaine de caractères (le mot de passe) et un sel (afin de compliquer les tentatives de déchiffrement par force-brute).
Originellement la fonction utilisait le standard DES avec un sel de 2 caractères, puis la fonction a été adaptée pour gérer d'autres algorithmes comme DES étendu, MD5, Blowfish (connu sous le nom de bCrypt), SHA256 ou SHA512.
Exemple : $1$secret$xoy1MxMutYIelML2TYUkO représente le hash crypt() du mot de passe dCode salé avec la chaine secret avec l'algorithme MD5
Pour encoder un mot de passe avec crypt(), l'utilisateur fournit le mot de passe en clair et un sel. La fonction crypt() combine ces deux entrées grace à l'algorithme de hachage choisi et y applique les paramètres choisi (comme un nombre d'itérations 🔁) afin de générer une chaine identifiante unique. Le résultat est donc une chaîne de caractères contenant le hash du mot de passe et les paramètres utilisés, qui peut être stockée en toute sécurité.
Lorsqu'un utilisateur voudra tester un mot de passe avec, l'algorithme devra à nouveau regénérer la chaine avec les mêmes paramètres, si les 2 chaines sont identiques, alors le mot de passe est aussi identique.
Afin de sécuriser d'avantage les mots de passe, il est recommandé d'utiliser un mot de passe assez long, un sel unique pour chaque mot de passe, et d'appliquer des algorithmes avec des couts de calculs importants (ie. le calcul doit être long et gourmand en mémoire, ce qui est généralement fait en augmentant le nombre d'itérations de l'algorithme).
Le chiffrement est à sens unique (principe des fonctions de hachage) c'est-à-dire qu'il ne peut pas être déchiffré avec une fonction decrypt.
L'unique moyen de retrouver un password est de tenter toutes les possibilités. Ce type d'attaque est potentiellement possible mais très difficile en pratique car il peut prendre des jours ou des années de calculs.
Si le mot de passe n'a pas de sel, alors il est possible d'utiliser les tables arc-en-ciel, stockant les mots de passes les plus couramment utilisés.
Si le mot de passe est court (longueur faible), et que le sel est connu alors tenter toutes les chaines possibles représente 255^(longueur en octets) calculs.
Si l'algorithme utilisé est faible, rapide à calculer et parallélisable, alors il est possible de calculer d'avantage de crypt() par seconde et d'accélérer la recherche.
Un hash issu de la fonction Crypt commence généralement par le symbole $ suivi d'un numéro. Il existe une variante où la chaine commence par _ (underscore) et une autre sans signature immédiatement reconnaissable.
Début | Algorithme |
---|---|
$1$ | MD5 |
$2$, $2a$, $2b$, $2x$, $2y$ | Blowfish (bCrypt) |
$3$ | NTHASH |
$5$ | SHA256 |
$6$ | SHA512 |
_ | Extended DES |
La chaine contient ensuite les éventuels paramètres et le sel utilisé. Les hashs calculés sont codés dans une base 64 utilisant l'alphabet ./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Exemple : $2y$10$secretsecretsecretse$.Qs2cjeDDosPe31wRbYCwnTcids4c4Ca (version bCrypt/Blowfish)
Exemple : $5$secret$BG4MkQdYxdLv2KOoRkK.3omTkZhME3rKNpREJ3pgmI8 (version SHA-256)
Hashcat est un outil de récupération de mots de passe et de cassage de hachage qui peut être utilisé pour tenter de récupérer des mots de passe à partir de hachages générés par la fonction Crypt et d'autres algorithmes de hachage. Il utilise des techniques de force brute et de dictionnaire pour essayer de trouver la valeur originale correspondant à un hachage donné.
Le fichier shadow est un élément clé dans les systèmes d'exploitation Unix pour la gestion sécurisée des mots de passe. Placé généralement dans le répertoire /etc/, le fichier shadow stocke les informations sensibles liées aux comptes utilisateurs, dont les hachages de mots de passe.
Aucun système de hachage n'est invulnérable aux attaques par force brute. Cependant, utiliser un algorithme de hachage fort, de nombreuses itérations et un sel aléatoire, les tentatives seront beaucoup plus difficiles et chronophages pour les attaquants.
dCode se réserve la propriété du code source pour "Hachage avec Crypt()". Sauf code licence open source explicite (indiqué Creative Commons / gratuit), l'algorithme pour "Hachage avec Crypt()", l'applet ou snippet (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou les fonctions liées à "Hachage avec Crypt()" (calculer, convertir, résoudre, décrypter / encrypter, déchiffrer / chiffrer, décoder / encoder, traduire) codés en langage informatique (Python, Java, C#, PHP, Javascript, Matlab, etc.) ou les données, en téléchargement, script, ou les accès API à "Hachage avec Crypt()" ne sont pas publics, idem pour un usage hors ligne, PC, mobile, tablette, appli iPhone ou Android !
Rappel : dCode est gratuit.
Le copier-coller de la page "Hachage avec Crypt()" ou de ses résultats est autorisée (même pour un usage commercial) tant que vous créditez dCode !
L'exportation des résultats sous forme de fichier .csv ou .txt est gratuite en cliquant sur l'icone export
Citer comme source bibliographique :
Hachage avec Crypt() sur dCode.fr [site web en ligne], consulté le 21/12/2024,