Crypteur/décrypteur md5 (par dico)

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

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)