60 lines
1.4 KiB
Python
60 lines
1.4 KiB
Python
import string
|
|
class wrongkey(Exception):
|
|
pass
|
|
def getlibrary1():
|
|
library = {}
|
|
for i in range(len(string.printable)):
|
|
library[string.printable[i]] = i
|
|
return library
|
|
|
|
def getlibrary2():
|
|
library = {}
|
|
for i in range(len(string.printable)):
|
|
library[i] = string.printable[i]
|
|
return library
|
|
|
|
def tonumber(target):
|
|
library = getlibrary1()
|
|
temp = ""
|
|
for i in target:
|
|
temp = temp + str(library[i])
|
|
return temp
|
|
|
|
def tostring(target):
|
|
library = getlibrary2()
|
|
return library[int(target)]
|
|
|
|
def encrypt(key, target):
|
|
key2 = tonumber(key)
|
|
out = []
|
|
for i in target:
|
|
out.append(int(key2)+int(tonumber(i)))
|
|
return out
|
|
|
|
def decrypt(key, target):
|
|
key2 = tonumber(key)
|
|
out = []
|
|
for i in target:
|
|
try:
|
|
out.append(tostring(int(i)-int(key2)))
|
|
except KeyError:
|
|
raise wrongkey("the key is wrong please try again! ")
|
|
temp = ""
|
|
for i in out:
|
|
temp = temp + i
|
|
return temp
|
|
|
|
if __name__ == "__main__":
|
|
file = open("log.txt", 'a')
|
|
target = input("to encrypt: ")
|
|
file.write("\nto encrypt: "+target)
|
|
key = input("key: ")
|
|
file.write("\nkey: "+key)
|
|
target = encrypt(key, target)
|
|
file.write("\nencrypted: "+str(target))
|
|
print("encrypted {}".format(target))
|
|
out = decrypt(input("decrypt key: "), target)
|
|
print("decrypted {}".format(out))
|
|
file.write("\ndecrypted: "+out)
|
|
file.close()
|