Bonjour,

Je n'arrive pas à tester les mots de passe d'un dictionnaire à travers une boucle FOR.
Je voulais savoir quelle était mon erreur de code ...


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
import gnupg
 
wordlist = "zero.txt"
fin = open(wordlist)
 
gpg = gnupg.GPG(gnupghome='/root/ctf/script/gpg_decrypt')
 
with open('flag.txt.gpg', 'rb') as f:
        for word in fin:
                #real passphrase is "Z3r0K00l"
                print('test passwrd ',word)
                status = gpg.decrypt_file(f, passphrase=word, output='my-decrypted.txt')
                print(status.ok)
 
f.close()
fin.close()
Voici le résultat dans le terminal:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
root@kali:~/ctf/script/gpg_decrypt# more zero.txt 
test
Z3r0K00l
root@kali:~/ctf/script/gpg_decrypt# python3 gpg_decrypt.py 
test passwrd  test
 
False
test passwrd  Z3r0K00l
 
False
Si je teste le mot de passe dans une variable, ça passe bien !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
import gnupg
 
 
password='Z3r0K00l'
 
gpg = gnupg.GPG(gnupghome='/root/ctf/script/gpg_decrypt')
 
with open('flag.txt.gpg', 'rb') as f:
                #real passphrase is "password"
                print('test passwrd ',password)
                status = gpg.decrypt_file(f, passphrase=password, output='my-decrypted.txt')
                print(status.ok)
 
f.close()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
root@kali:~/ctf/script/gpg_decrypt# python3 gpg_decrypt.py 
test passwrd  Z3r0K00l
True
Du coup c'est un problème dans ma boucle for ?