You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.1 KiB
83 lines
2.1 KiB
import random as r
|
|
|
|
def Encrypt(text, key):
|
|
result = ""
|
|
for i in range(len(text)):
|
|
char = text[i]
|
|
if(char==" "):
|
|
result+=" "
|
|
elif (char.isupper()):
|
|
result += chr((ord(char) + key-65) % 26 + 65)
|
|
else:
|
|
result += chr((ord(char) + key - 97) % 26 + 97)
|
|
return result
|
|
|
|
def EncryptVerif(text, key):
|
|
result = ""
|
|
for i in range(len(text)):
|
|
char = text[i]
|
|
if(char==" "):
|
|
result+=" "
|
|
elif (char.isupper()):
|
|
result += chr((ord(char) + key-65) % 26 + 65)
|
|
else:
|
|
result += chr((ord(char) + key - 97) % 26 + 97)
|
|
return result
|
|
|
|
|
|
def Decrypt(text, key):
|
|
result = ""
|
|
for i in range(len(text)):
|
|
char = text[i]
|
|
if(char==" "):
|
|
result+=" "
|
|
elif (char.isupper()):
|
|
result += chr((ord(char) - key-65) % 26 + 65)
|
|
else:
|
|
result += chr((ord(char) - key - 97) % 26 + 97)
|
|
return result
|
|
|
|
def DecryptVerif(text, key):
|
|
result = ""
|
|
for i in range(len(text)):
|
|
char = text[i]
|
|
if(char==" "):
|
|
result+=" "
|
|
elif (char.isupper()):
|
|
result += chr((ord(char) - key-65) % 26 + 65)
|
|
else:
|
|
result += chr((ord(char) - key - 97) % 26 + 97)
|
|
return result
|
|
|
|
def testEncrypte(x):
|
|
if(Encrypt("Hello world",2)!="Jgnnq yqtnf"):
|
|
return False
|
|
if(Encrypt("Scripted",9)!="Blarycnm"):
|
|
return False
|
|
for i in range(x):
|
|
l=""
|
|
cle=r.randint(1,26)
|
|
for i in range(r.randint(1,10)):
|
|
l+=chr(r.randint(97,122))
|
|
if(Encrypt(l,cle)!=EncryptVerif(l,cle)):
|
|
return False
|
|
return True
|
|
|
|
|
|
def testDecrypte(x):
|
|
if(Decrypt("Hello world",2)!="Jgnnq yqtnf"):
|
|
return False
|
|
if(Decrypt("Scripted",9)!="Blarycnm"):
|
|
return False
|
|
for i in range(x):
|
|
l=""
|
|
cle=r.randint(1,26)
|
|
for i in range(r.randint(1,10)):
|
|
l+=chr(r.randint(97,122))
|
|
if(Decrypt(l,cle)!=DecryptVerif(l,cle)):
|
|
return False
|
|
return True
|
|
|
|
|
|
|
|
print(Decrypt("Scripted",4)) |