Outil pour utiliser la fonction crypt() de chiffrement de mots de passe 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 ? Ecrire à 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
D'une manière générale crypt utiliser un algorithme de hachage et y appliquer les paramètres choisi (généralement plusieurs itérations) afin de générer une chaine identifiante unique contenant le hash du mot de passe (et les paramètres utilisés). Cette chaine sera stockée par le système. 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 mot de passe 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) 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)
dCode se réserve la propriété du code source de l'outil 'Hachage avec Crypt()' en ligne. Sauf code licence open source explicite (indiqué CC / Creative Commons / gratuit), tout algorithme pour 'Hachage avec Crypt()', applet ou snippet (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou toute fonction liée à 'Hachage avec Crypt()' (calculer, convertir, résoudre, décrypter / encrypter, déchiffrer / chiffrer, décoder / encoder, traduire) codé en langage informatique (Python, Java, C#, PHP, Javascript, Matlab, etc.) aucune donnée, téléchargement, script, copier-coller, ou accès API à 'Hachage avec Crypt()' ne sera cédé gratuitement, idem pour un usage hors ligne, PC, tablette, appli iPhone ou Android ! dCode est gratuit est en ligne.
Rendez-vous sur notre communauté Discord dCode pour participer au forum d'entraide !
PS : Pour les messages codés, testez notre détecteur de chiffrement !
Grâce à vos remarques, réponses et commentaires pertinents, dCode peut développer le meilleur outil 'Hachage avec Crypt()', alors écrivez-nous c'est gratuit ! Merci !