@@ -1,43 +0,0 @@ | |||||
import sys | |||||
def rotate(x, y): | |||||
return (x + y) % 26 | |||||
def shift(letter, n): | |||||
x = ord(letter) - ord("A") | |||||
y = rotate(x, n) | |||||
return chr(ord("A") + y) | |||||
def rot13(message): | |||||
message = "".join([x for x in message if x.isalpha()]) | |||||
message = message.upper() | |||||
res = "" | |||||
for c in message: | |||||
res += shift(c, 13) | |||||
return res | |||||
def encrypt(key, message): | |||||
message = "".join([x for x in message if x.isalpha()]) | |||||
message = message.upper() | |||||
res = "" | |||||
i = 0 | |||||
for c in message: | |||||
x = ord(key[i % len(key)]) - ord("A") | |||||
res += shift(c, x) | |||||
i += 1 | |||||
return res | |||||
def main(): | |||||
cle = sys.argv[1] | |||||
message = sys.argv[2] | |||||
res = encrypt(cle, message) | |||||
print(res) | |||||
if __name__ == "__main__": | |||||
main() |
@@ -1,33 +0,0 @@ | |||||
def rotate(x, y): | |||||
return (x + y) % 26 | |||||
def shift(letter, n): | |||||
x = ord(letter) - ord('A') | |||||
y = rotate(x, n) | |||||
return chr(ord('A') + y) | |||||
def rot13(message): | |||||
message = "".join([x for x in message if x.isalpha()]) | |||||
message = message.upper() | |||||
res = "" | |||||
for c in message: | |||||
res += shift(c, 13) | |||||
return res | |||||
def test_rotate(): | |||||
assert rotate(1, 3) == 4 | |||||
assert rotate(25, 3) == 2 | |||||
def test_shift(): | |||||
assert shift('A', 2) == 'C' | |||||
assert shift('E', 2) == 'G' | |||||
assert shift('Y', 3) == 'B' | |||||
def test_rot13(): | |||||
assert rot13('hello') == 'URYYB' | |||||
assert rot13('URYYB') == 'HELLO' |
@@ -0,0 +1,37 @@ | |||||
import string | |||||
import sys | |||||
def enlever_les_espaces(msg): | |||||
msg_compact = "" | |||||
for lettre in msg: | |||||
if lettre.isalpha(): | |||||
msg_compact += lettre | |||||
return msg_compact | |||||
def mettre_en_maj(msg): | |||||
msg_maj = msg.upper() | |||||
return msg_maj | |||||
def chiffre(pas, msg): | |||||
mesg_chiffre = "" | |||||
for lettre in msg: | |||||
mesg_chiffre += decale_lettre(pas, lettre) | |||||
return mesg_chiffre | |||||
def decale_lettre(pas, lettre): | |||||
let = ((ord(lettre) - 65) + pas) % 26 | |||||
return chr(let + 65) | |||||
def main(): | |||||
message_compact = enlever_les_espaces(sys.argv[2]) | |||||
message_maj = mettre_en_maj(message_compact) | |||||
message_chiffre = chiffre(int(sys.argv[1]), message_maj) | |||||
print(message_chiffre) | |||||
main() |
@@ -0,0 +1,44 @@ | |||||
import string | |||||
import sys | |||||
def enlever_les_espaces(msg): | |||||
msg_compact = "" | |||||
for lettre in msg: | |||||
if lettre.isalpha(): | |||||
msg_compact += lettre | |||||
return msg_compact | |||||
def mettre_en_maj(msg): | |||||
msg_maj = msg.upper() | |||||
return msg_maj | |||||
def chiffre(chaine, msg): | |||||
mesg_chiffre = "" | |||||
i = 0 | |||||
for lettre in msg: | |||||
pas = ord(chaine[i % len(chaine)]) - 65 | |||||
mesg_chiffre += decale_lettre(pas, lettre) | |||||
i += 1 | |||||
return mesg_chiffre | |||||
def decale_lettre(pas, lettre): | |||||
let = ((ord(lettre) - 65) + pas) % 26 | |||||
return chr(let + 65) | |||||
def main(): | |||||
message_compact = enlever_les_espaces(sys.argv[2]) | |||||
message_maj = mettre_en_maj(message_compact) | |||||
# argv1 contient une chaine | |||||
message_chiffre = chiffre(sys.argv[1], message_maj) | |||||
print(message_chiffre) | |||||
main() |
@@ -0,0 +1,40 @@ | |||||
import string | |||||
import sys | |||||
import random | |||||
def chiffre(chaine, msg): | |||||
mesg_chiffre="" | |||||
i=0 | |||||
for lettre in msg: | |||||
pas=ord(chaine[i%len(chaine)])-65 | |||||
mesg_chiffre += decale_lettre(pas,lettre) | |||||
i+=1 | |||||
return mesg_chiffre | |||||
def decale_lettre(pas, lettre): | |||||
let=((ord(lettre)-65) + pas ) % 26 | |||||
return chr(let+65) | |||||
def main(): | |||||
for i in string.ascii_uppercase: | |||||
for j in string.ascii_uppercase: | |||||
for k in string.ascii_uppercase: | |||||
cle=i+j+k | |||||
msg_dechiffre = chiffre(cle, "IHDXUVZKRISCBNJWBXIDUWVVODUBPRFQRIRGBUR") | |||||
if "PLEKSZYGLADZ" in msg_dechiffre: | |||||
print (cle,msg_dechiffre) | |||||
#return te sort du main | |||||
return | |||||
main() | |||||
#IHDXUVZKRISCBNJWBXIDUWVVODUBPRFQRIRGBUR |
@@ -1,6 +0,0 @@ | |||||
Message-1 was encrypted with the key 'M'. Decrypt it | |||||
Message-2 was encrypted with an unknown, 3 letters key. Decrypt it too, | |||||
knowing that it contains the string 'Plekszy-Gladz' | |||||
spoiler: xdr |
@@ -1,62 +0,0 @@ | |||||
import sys | |||||
import string | |||||
def rotate(x, y): | |||||
return (x - y) % 26 | |||||
def shift(letter, n): | |||||
x = ord(letter) - ord("A") | |||||
y = rotate(x, n) | |||||
return chr(ord("A") + y) | |||||
def rot13(message): | |||||
message = "".join([x for x in message if x.isalpha()]) | |||||
message = message.upper() | |||||
res = "" | |||||
for c in message: | |||||
res += shift(c, 13) | |||||
return res | |||||
def decrypt(key, message): | |||||
message = "".join([x for x in message if x.isalpha()]) | |||||
message = message.upper() | |||||
res = "" | |||||
i = 0 | |||||
for c in message: | |||||
x = ord(key[i % len(key)]) - ord("A") | |||||
res += shift(c, x) | |||||
i += 1 | |||||
return res | |||||
def try_with_key(key, message): | |||||
res = decrypt(key, message) | |||||
if "PLEKSZYGLADZ" in res: | |||||
return res | |||||
def main(): | |||||
message = sys.argv[1] | |||||
print(decrypt('N', message)) | |||||
""" | |||||
message = sys.argv[1] | |||||
letters = string.ascii_uppercase | |||||
for a in letters: | |||||
for b in letters: | |||||
for c in letters: | |||||
key = a + b + c | |||||
res = try_with_key(key, message) | |||||
if res: | |||||
print(res) | |||||
print("key:", key) | |||||
return | |||||
""" | |||||
if __name__ == "__main__": | |||||
main() |
@@ -1 +0,0 @@ | |||||
GVAGVAFRFGRZCNERQHFCRPGERCERARMYRFZRFHERFARPRFFNVERF |