-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathxor.py
42 lines (34 loc) · 1.07 KB
/
xor.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
#!/usr/bin/python
import sys
def xorcrypt(data, key):
result = ''
pad = key*(len(data)/len(key)) + key[:(len(data)%len(key))]
for i in range(len(data)-1):
result += chr (ord(data[i]) ^ ord(pad[i]))
return result
title = 'Xorpy v1.1'
author = 'Coded by: Shawn Evans'
email = 'Email: [email protected]'
def usage():
print '*'*40
print '* %s%s*' % (title, ' '*int(37-len(title)))
print '*'*40
print '* %s%s*' % (author, ' '*int(37-len(author)))
print '* %s%s*' % (email, ' '*int(37-len(email)))
print '*'*40
print ''
print 'Usage: python %s %s %s' % (sys.argv[0], '"key"', 'encrypted.txt')
print '$ cat decryptMe.txt | python %s %s' % (sys.argv[0], '"key"')
print '$ cat encryptMe.txt | python %s %s' % (sys.argv[0], '"$eCreTkey"')
if __name__ == '__main__':
try:
if not sys.stdin.isatty():
inFile = sys.stdin
else:
inFile = sys.argv[2]
except:
usage()
sys.exit()
key = sys.argv[1]
data = inFile.read()
print xorcrypt(data, key)