Utilisation
Les bases de données
Dans les bases de données (les plus sécurisées) les mots de passe sont stockés sous forme de signature (un hash) et d'un sel (le salt), la signature étant la concatenation du mot de passe (choisi par l'utilisateur) et du sel (chaine aléatoire).
Cette combinaison permet de contrecarrer les brutes-force en chaine, si aucun sel n'est utilisé, dès lors que l'algorithme en percera une signature, tous les mots de passe identique seront percés, avec un sel, les mots de passe identique auront une signature différente.
L'utilisation du code
L'algorithme utilise cinq variables :
- hash : la signature complète du mot de passe. C'est la signature enregistrée en base de données.
- salt : le sel du mot de passe. Enregistre en base de données à coté de la signature.
- minsize : la taille minimum du mot de passe a vérifié. Certaines applications exigent une taille de mot de passe minimum, inutile donc de tester des combinaisons plus petites.
- maxsize : la taille maximum du mot de passe a vérifié. Plus cette valeur est grande, plus l'algorithme perdra en performances. Une valeur trop petite et vous ne trouverez jamais le mot de passe, il faut donc trouver un équilibre.
- charset : le jeu de caractères. Tout comme la taille maximum, plus vous ajoutez de caractères, plus l'algorithme sera ralenti. Et moins vous en ajoutez, moins vous aurez de chance de trouver le mot de passe.
Essayons avec la configuration suivante :
hash := "6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090" salt := "123" minsize := 0 maxsize := 10 charset := "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghikjlmnopqrstuvwxyz[]~@#$-_+{};:,./\\?"
Compilons le code et lançons le programme... Et bingo :
Le mot de passe est : "abc"
Le programme a retrouvé le mot de passe caché derrière la signature !