Better hashid

This commit is contained in:
Julien Palard 2018-10-31 12:07:47 +01:00
parent 1d1d8d2bba
commit 4012f7a192

View File

@ -5,28 +5,34 @@ robots: noindex
# hashid
Le nom du projet est: `hashid`, en minuscule (c'est important pour le rendu).
Le nom du projet est: `hashid`, le protocole de rendu est
[](https://mdk.fr/pages/obiree2uaza2sh-rendu.html).
L'exercice consiste à écrire un outil permettant de reconnaître un hash.
L'exercice consiste à écrire un outil, en Python, permettant de
reconnaître un algorithme de hash, lorsqu'on lui donne un hash.
L'outil devra fonctionner *sans* serveur HTTP, le JavaScript est cependant autorisé : votre programme devra donc pouvoir être lancé en ligne de commande avec node.js. Tous les langages sont autorisés.
## Exemple
:::shell
$ ./hashid 68b329da9893e34099c7d8ad5cb9c940
$ ./hashid.py 68b329da9893e34099c7d8ad5cb9c940
md5
$ ./hashid adc83b19e793491b1c6ea0fd8b46cd9f32e592fc
$ ./hashid.py adc83b19e793491b1c6ea0fd8b46cd9f32e592fc
sha1
Sur 12 points : Être capable de distinguer les hash suivants: CRC16, Adler-32, md5, sha1, du bcrypt avec son salt tel que renvoyé en PHP par `password_hash("foo", PASSWORD_BCRYPT)`, et du whirlpool.
Sur 12 points : Être capable de distinguer 6 hash différents.
Sur 6 points: Reconnaître correctement au moins 15 hash différents.
Sur 6 points : Reconnaître correctement au moins 12 hash différents.
Sur 1 point: Une option `--help` avec un "Usage" lisible.
Sur 1 point : Une option `--help` avec un "Usage" lisible (utilisez argparse).
Sur 1 point: Proposer une option pour pré-écrire à l'utilisateur la commande John the Ripper (disons `--john`) ou hashcat (disons `--hashcat`) pour tenter de casser le mot de passe.
Sur 1 point : Proposer une option pour pré-écrire à l'utilisateur la
commande John the Ripper (disons `--john`) ou hashcat (disons
`--hashcat`) pour tenter de casser le mot de passe.
Sur 1 point: Extraire le premier paragraphe de Wikipedia à propos du hash trouvé pour en afficher une description à l'utilisateur, si c'est fait au runtime c'est mieux si c'est optionnel, disons `--wikipedia`.
Sur 1 point : Extraire le premier paragraphe de Wikipedia à propos du
hash trouvé pour en afficher une description à l'utilisateur, si c'est
fait au runtime c'est mieux si c'est optionnel, disons `--wikipedia`.
Sur 1 point: Une option pour lister tous les hash connus par l'outil, disons `--list`.
Sur 1 point : Une option pour lister tous les hash connus par l'outil,
disons `--list`.