forked from kokonior/Python-Projects
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdecrypter.py
More file actions
35 lines (32 loc) · 1.01 KB
/
decrypter.py
File metadata and controls
35 lines (32 loc) · 1.01 KB
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
import os
filename = input('Which file do you want to en- or decrypt?\n')
en_or_de = input('Encrypt or decrypt that file?\nen/de\n')
if en_or_de == 'de':
key = input('Which key do you want to use?\n')
def encrypt(filename):
zu_verschluesseln = open(filename, "rb").read()
size = len(zu_verschluesseln)
key = os.urandom(size)
with open(filename +'.key', 'wb') as key_out:
key_out.write(key)
verschluesselt = bytes(a ^ b for (a,b) in zip(zu_verschluesseln, key))
with open(filename, "wb") as encrypted_out:
encrypted_out.write(verschluesselt)
def decrypt(filename,key):
file = open(filename, 'rb').read()
key = open(key, 'rb').read()
entschluesselt = bytes(a ^ b for (a,b) in zip(file, key))
with open(filename, 'wb') as decrypted_out:
decrypted_out.write(entschluesselt)
if en_or_de == 'en':
try:
encrypt(filename)
except:
print('Wrong Filename')
elif en_or_de == 'de':
try:
decrypt(filename,key)
except:
print('Wrong key')
else:
print('wrong input')