-
Notifications
You must be signed in to change notification settings - Fork 0
/
pass_crack.py
44 lines (34 loc) · 965 Bytes
/
pass_crack.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import sys
file_in = "output"
try:
with open(file_in, 'rb') as f:
binary = f.read()
except FileNotFoundError:
print('Fisier de citire inexistent')
sys.exit()
binary = binary.decode('utf-8')
chars = " \\/,@^[]()~<>\.`_-–!?:\";\n™€“…’\t|⦔"
for i in range(256):
chars += chr(i)
for len_pass in range(10, 16):
posib = []
for i in range(len_pass):
p = set()
for i in range(1, 9000):
p.add(i)
posib.append(p)
for i, t in enumerate(binary):
p = set()
for c in chars:
p.add(ord(c) ^ ord(t))
posib[i % len_pass] = posib[i % len_pass] & p
we_have_pass = True
for i in range(len_pass):
if len(posib[i]) == 0:
we_have_pass = False
if we_have_pass == True:
password = ""
for i in range(len_pass):
for c in posib[i]:
password += chr(c)
print(password)