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.
Scripted/EnigmePython/codeCesarEncodage.py

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))