Craquage de mot de passe par force brute Python

1. Importez le package

Ici, nous devons utiliser itertools et zipfile deux packages

import itertools
import zipfile

Commençons par comprendre brièvement l'utilisation simple du package itertools

digital_list=list(itertools.permutations(['0','1','2','3','4','5','6','7','8','9'],3))
d_list=[''.join(x) for x in digital_list]
print(digital_list)
print(d_list)

Ici, nous créons une liste digital_list

itertools.permutations(['0','1','2','3','4','5','6','7','8','9'],3)

Le code ci-dessus sélectionnera trois des nombres 0-9, formera une permutation complète et renverra une liste de trois éléments, puis nous transmettrons une compréhension de liste aux trois éléments de chaque tuple assemblés. 

Bien sûr, nous pouvons également utiliser la même méthode pour transformer nos lettres en groupes de trois éléments

alpha_list=list(itertools.permutations(['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'],3))
a_list=[''.join(x) for x in alpha_list]

Nous pouvons utiliser itertools.product pour concaténer nos d_list et a_list, mais le résultat de notre concaténation est une liste d'éléments composés de trois chiffres et de trois lettres. Nous devons également utiliser la méthode ci-dessus pour combiner notre tuple numérique et le tuple alphabétique. sont concaténés ensemble. Les captures d'écran ci-dessous sont quelques-uns de nos résultats (trop de données, pas toutes).

mix_digital=list(itertools.product(d_list,a_list))
mix_d=[''.join(x) for x in mix_digital]
print(mix_d)

 Ensuite, nous devons utiliser notre package zipfile. Pour le moment, il existe un fichier python.zip chiffré dans notre répertoire de même niveau. Nous utilisons la méthode zipfile.ZipFile pour lire notre fichier python.zip. Pour le moment, nous n'avons qu'à saisir les mots de passe dans notre mix_d pour tester un par un, c'est tout.

f.extractall passe dans notre my_pwd, qui est le mot de passe que nous avons arrangé et combiné auparavant, et spécifie notre ensemble d'encodage comme utf-8. Si l'essai réussit, nous afficherons que le crack a réussi et que la décompression est terminée. Si cela ne réussit pas, nous continuerons à cracker.

f=zipfile.ZipFile('python.zip')
for my_pwd in mix_d:
    try:
        f.extractall(pwd=my_pwd.encode(encoding='utf-8'))
        print('破解密码成功,解压完成')
    except:
        print('破解密码不正确,请继续破解')

Voici le code complet :

En raison de l'énorme quantité de données de permutation et de combinaison de mots de passe, notre ordinateur doit fonctionner pendant longtemps et doit attendre patiemment.

import itertools
import zipfile

digital_list=list(itertools.permutations(['0','1','2','3','4','5','6','7','8','9'],3))
d_list=[''.join(x) for x in digital_list]
alpha_list=list(itertools.permutations(['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'],3))
a_list=[''.join(x) for x in alpha_list]
mix_digital=list(itertools.product(d_list,a_list))
mix_d=[''.join(x) for x in mix_digital]
f=zipfile.ZipFile('python.zip')
for my_pwd in mix_d:
    try:
        f.extractall(pwd=my_pwd.encode(encoding='utf-8'))
        print('破解密码成功,解压完成')
    except:
        print('破解密码不正确,请继续破解')

Je suppose que tu aimes

Origine blog.csdn.net/weixin_62684026/article/details/124338757
conseillé
Classement