Exercices sur les dictionnaires⚓︎
Exercice 1
On considère la liste suivante :
lst = ['5717', '1133', '5545', '4031', '6398', '2734', '3070', '1346', '7849', '7288', '7587', '6217', '8240', '5733', '6466', '7972', '7341', '6616', '5061', '2441', '2571', '4496', '4831', '5395', '8584', '3033', '6266', '2452', '6909', '3021', '5404', '3799', '5053', '8096', '2488', '8519', '6896', '7300', '5914', '7464', '5068', '1386', '9898', '8313', '1072', '1441', '7333', '5691', '6987', '5255']
Quel est le chiffre qui revient le plus fréquemment dans cette liste ?
Correction
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
Exercice 2
Exercice 2 du sujet Centres Etrangers J1 2021
Exercice 3 : création d'une rainbow table
Créer une fonction inverse_md5
qui va chercher dans un dictionnaire (construit préalablement) le mot correspondant au hash donné en paramètre.
À quel mot de passe correspond le hash 33da7a40473c1637f1a2e142f4925194
?
Exemple :
>>> inverse_md5('0571749e2ac330a7455809c6b0e7af90')
>>> 'sunshine'
Aide :
- liste de 1000 mots de passe fréquents : ici
- comment lire / convertir le contenu d'un fichier dans une liste de
string
:lst = open("monfichier.txt").read().splitlines()
- comment calculer du MD5 en Python :
import hashlib result = hashlib.md5('azerty'.encode()) print(result.hexdigest())