status: hidden
title: Cybersécurité — hashid
slug: einao4Noo2ohro-hashid
robots: noindex

# hashid

Le nom du projet est: `hashid`, le protocole de rendu est
[là](https://mdk.fr/pages/obiree2uaza2sh-rendu.html).

L'exercice consiste à écrire un outil, en Python, permettant de
reconnaître un algorithme de hash, lorsqu'on lui donne un hash.


## Exemple

    :::shell
    $ ./hashid.py 68b329da9893e34099c7d8ad5cb9c940
    md5
    $ ./hashid.py adc83b19e793491b1c6ea0fd8b46cd9f32e592fc
    sha1

Sur 12 points : Être capable de distinguer 6 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 (utilisez
argparse ou équivalent).

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 : Une option pour lister tous les hash connus par l'outil,
disons `--list`.
