Je dois créer une fonction qui permet de trouver un mot de passe par attaque brute et par attaque de dictionnaire. C'est-à-dire que le code doit permettre à l'aide une liste de mot d'un dictionnaire trouver d'abord les mots que contient le mot de passe. Puis doit craquer le reste du mot de passe par force brute donc en comparant un par un les lettres du mot de passe et l'alphabet. Pour préciser, j'ai déjà une fonction force_brute qui trouve le mot de passe en comparant les lettres un par un et une fonction dictionnaire qui compare les mots du dictionnaires avec le mot de passe.
J'ai déjà une fonction qui affiche une liste des mots trouvé dans le mot de passe et l'index de la première lettre dans le mot de passe.
def forceBrute_dict(mdp):
motif=''
texte=mdp
reponse=[] #comporte les mots du dict et leur emplacement
t=len(texte)
dic=open('dictionnairev2.txt',mode='r')
for mot in dic:
motif=mot.strip()
for i in range(0, t-len(motif)+1):
if texte[i : i + len(motif)] == motif:
if(len(motif)>3):
reponse.append([i,motif,len(motif)]) #ajoute l'index de début et le mot trouvé dans la liste
print(reponse)
Par exemple si le mot de passe est pomme1234pomme.
forceBrute_dict(pomme1234pomme)
[[0, 'pomme', 5], [9, 'pomme', 5]]
A partir d'ici je reste bloqué. Je ne sais pas comment je pourrais stocker le mot de passe trouvé au fur et à mesure des attaques.
D'abord, tu n'as pas besoin de placer la longueur de la chaîne dans ta liste. Ensuite, je ne comprend pas ce que tu veux faire avec ton dictionnaire. Sais-tu comment générer un dictionnaire?
Les entrées d'un dictionnaire sont formés d'une clé et d'une valeur. Qu'est-ce que tu donneras comme valeur?
- Edité par PierrotLeFou 27 décembre 2022 à 17:15:08
Le Tout est souvent plus grand que la somme de ses parties.
C'est dictionnaire en tant qu'objet Python ou bien dictionnaire en tant que livre qui est une liste de mot par ordre alphabétique ?
Que contient ton fichier .txt exactement ?
- Edité par Phil_1857 il y a environ 1 heure
C'est un dictionnaire en tant que livre. le dictionnaire.txt contient des mots d'un dictionnaire de A à Z.
Ce que je veux c'est de trouver les mots du dictionnaire que contient le mot de passe, et donc de faire une attaque par dictionnaire puis compléter en faisant une attaque brute, c'est à dire , de trouver les lettres et chiffres en comparant un par un.
En gros le programme doit faire une mélange d'attaque brute et d'attaque par dictionnaire sur le mot de passe saisi. j'ai déjà fait les fonctions pour l'attaques brutes et pour l'attaque par dictionnaire.
Drôle d'exercices... M'enfin, imaginons que le site/logiciel à craquer te renvoie les caractères correctes, ce n'est pas très compliqué de faire du force brute ensuite sur les caractères non correctes. Suffit d'itérer et de voir si c'est bon ou pas...
Quelque chose du genre "elevateur" vs "elevation" ? Et si les longueurs ne sont pas les mêmes comme "eleve" vs "elever" J'ai quitté l'école après la lettre "e".
Le Tout est souvent plus grand que la somme de ses parties.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
@Préno.Facultatif Bonsoir, merci de ne pas squatter le sujet des autres, créer votre propre sujet dans le respect des règles du forum à savoir qu'un message commence par des règles de politesses (Un bonjour ou des salutations à la communauté et se termine par des remerciements par avances pour les futures réponses), la description de votre problème et le code que vous avez écrit inséré sur le forum à l'aide de l'outil d'intégration de code soit le bouton code </>.
Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.
Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre. En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.
Au lieu de déterrer un sujet il est préférable :
soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
soit de créer un nouveau sujet décrivant votre propre contexte
ne pas répondre à un déterrage et le signaler à la modération
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)