-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCrack.py
48 lines (45 loc) · 1.16 KB
/
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
45
46
47
48
import sys
def encrypt(fileName,keyword):
fin = open(fileName,'r')
s = fin.read()
arr = []
for i in xrange(0,len(s)):
arr.append(ord(s[i])^ord(keyword[i%3]))
fin.close()
fout = open(fileName,'w');
for j in arr:
fout.write(str(j)+",");
return
def decrypt(fileName,keyword,guess):
if guess:
fin = open(fileName,'r')
s = fin.read()
arr = s.split(',')
print "<-----------------------wild guess------------------------>"
for i in xrange(0,len(arr)-1):
sys.stdout.write(chr(int(arr[i])^ord(keyword[i%3]))),
print "\n<--------------------------------------------------------->"
fin.close()
else:
fin = open(fileName,'r')
s = fin.read()
arr = s.split(',')
out = ""
for i in xrange(0,len(arr)-1):
out += chr(int(arr[i])^ord(keyword[i%3]))
fin.close()
fout = open(fileName,'w')
fout.write(out);
fout.close()
return
if __name__=='__main__':
if sys.argv[1] == "encrypt":
if len(sys.argv) < 3 :
encrypt(sys.argv[2],"yup")
else:
encrypt(sys.argv[2],sys.argv[3])
elif sys.argv[1] == "decrypt":
if(len(sys.argv)<5):
decrypt(sys.argv[2],sys.argv[3],False)
elif(sys.argv[3] == "-guess"):
decrypt(sys.argv[2],sys.argv[4],True)