Crypteur/décrypteur md5 (par dico)

Soyez le premier à donner votre avis sur cette source.

Vue 25 766 fois - Téléchargée 1 316 fois

Description

Petit programme pour crypter un mot en md5.
Il est possible de le décrypter si le mot est contenu dans le fichier txt du programme , vous pouvez bien sûr faire vos propres fichiers en mélangeant plusieurs langues pour avoir plus de chances pour trouver le mot crypté.
Ma méthode pour repérer s'il y a un argument ou non est assez archaïque (étant débutant) mais c'est la seul façon que j'ai trouvé pour faire ça.
Pour utiliser le programme , il faut soit mettre un mot en argument pour le crypter soit mettre le code md5 a décrypter dans le code (variable CRYPTED) et lancer l'appli sans argument.

Source / Exemple :


import md5
from sys import *

# fichier de recherche 
FICHIER = "liste.txt"

# mot crypté en MD5
CRYPTED = "5f4dcc3b5aa765d61d8327deb882cf99"

# fonction pour enlever les retours a la ligne
def sansDC(ch):
    if( ch[-1] == "\n" ):
        ch = ch[:-1]
    return ch

# Cette fonction permet de crypter le mot en argument
def avecArgv():
    try:
        m = md5.new()
        m.update(argv[1])
        print argv[1] + " : " + m.hexdigest()
    except IndexError:
        exit    

# Permet de retrouver le mot crypté
def sansArgv():
    try:
        f = open(FICHIER,"r")
        lignes = f.readlines()
            for mot in lignes:
                mot = sansDC(mot)
	if not mot:
	    break
	m = md5.new()
	m.update(mot)
	p = 0
	if m.hexdigest() == CRYPTED:
	    p = 1
	    print "Mot trouve : ", mot
	    break
        if p == 0:
            print "Aucun mot trouve par dico"
        f.close()
    except KeyboardInterrupt:
        exit

if len(argv) == 2:
    avecArgv()
else:
    sansArgv()

Conclusion :


Il fonctionne sous Windows 2000 et XP. Je ne sais pas pour Linux. Je vais sûrement faire une nouvelle version pour trouver le mot crypté par brute force avec peut être une interface graphique.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
16
Date d'inscription
vendredi 18 novembre 2005
Statut
Membre
Dernière intervention
1 mai 2007

Bonjour à tous.
Je sais qu'il se fait tard, mais faut croire que j'aime à converser quelques mois (années?) après qu'un sujet se soit épuisé...

Pour commencer, thecryingshadow, la fonction MD5 est une fonction de hashage, pas de cryptage. On va me dire que je chipotte, mais les mots sont là pour ça. :)

Ensuite, ta fonction avecArgv() n'est pas une fonction. Une fonction (comme l'addition) retourne un résultat (2+2 = 4) qui peut être affecté à une variable
(res = 2+2). avecArgv() est une procédure. Parlons le même langage, ça aide à se comprendre.

Après les remarques amères :p, les remarques pratiques !
Il est déconseillé de donner à un scipt Python le même nom qu'un module existant. Ton script se nomme md5, et il importe un module nommé md5... A éviter.

Pour ce qui est de la variable CRYPTED, à éviter aussi : l'utilisateur n'a pas à changer le programme pour l'utiliser. Tu pourrai mettre un système d'appel à deux paramètres :
le premier indique que l'on veut hasher / retrouver un mot,
le second est le mot / le hash à traiter.
Exemple :

erreur = """
Usage : md5.py option chaine
option : -hash : hasher la chaine
-find : trouver le mot correspondant au hash chaine
"""
if len(argv) != 3: #mauvais appel du programme
print erreur

elif not argv[1] in ['-hash','-find']: #mauvaise option
print erreur

elif argv[1] == '-hash':
Hasher(argv[2]) #la chaine est un mot à hasher

elif argv[1] == '-find':
Trouver(argv[2]) #la chaine est un hash : rechercher le mot correspondant


Voilà voilà. Ca devrait te servir ! Sauf si tu t'en sers déjà :)
Bonne continuation.
Messages postés
200
Date d'inscription
samedi 25 décembre 2004
Statut
Membre
Dernière intervention
19 août 2009

ok

ben je vai essayer merci!
Messages postés
179
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
21 mai 2014
3
il y a plus simple
tu peux configurer les variables d'environnement de windows ( linux aussi ) pou que le répertoire de python soit dans la variable PATH
Sous XP tu peut l'ajouter dans les prop du Poste de travail, et sous 98 il faut y mettre directement dans le fichier autoexec.bat
apres dans ta console tu n'as plus qu'aller dans le rep ou sont tes fichiers python et tu tape python fichier.py et c'est parti!
Messages postés
1
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
28 février 2005

Il faut d'abord que tu ais téléchargé (http://www.python.org/ftp/python/2.3.5/Python-2.3.5.exe pour la version 2.3.5) et installé python sur ton pc.

Ensuite tu ouvres une invite de commandes MS-DOS et tu vas dans le repertoire python (qui est C:\Python22 par défaut).

Soit :
> cd C:\Python22

met le fichier scanner.py et le fichier liste.txt (du zip) dans ce répertoire (C:\Python22 ).

Sur l'invite de commandes, tu tapes :
> python scanner.py

tu remplaces par une adresse ip valide ou un nom de site comme sur la capture.
et tu fais entrer !
Et tu verras le résultat.
Messages postés
200
Date d'inscription
samedi 25 décembre 2004
Statut
Membre
Dernière intervention
19 août 2009

salut,
je ne connais rien au "python" et j'ai pri ton script. mais je sais meme pas comment l'ouvrir! tu peux m'expliquer stp??
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (thecryingshadow)