print('#' * 20)
print("Premier défi")
m1 = "\x58\x6C\x4D\x6C\x64\x6A\x60\x62\x6D"
print("Message initial :", m1)
def solve(c):
b = [int(x) for x in reversed(f"{ord(c):08b}")]
s = [b[0] ^ 1, b[0] ^ b[1] ^1, b[2], b[3] ^b[4], b[4], b[5], 1, 0]
bi = ''.join(map(str, reversed(s)))
return chr(int(bi, 2))
res1 = ''.join(solve(c) for c in m1)
print("Premier message déchiffré ", res1)
print('#' * 20)
print("Second défi")
def code(c):
# bits dans l'ordre croissant 0, 1, ...
b = [int(x) for x in reversed(f"{ord(c):08b}")]
s = [b[0] ^ b[1] ^ b[2], b[1] ^ b[2], b[1], b[4], b[3] ^ b[5] ^ b[6], b[4] ^ b[5] ^ b[6] ^ b[7], b[7], b[6]]
# Recherche d'antécédent au lieu d'image
# s = [b[0] ^ b[1], b[2],b[1] ^ b[2], b[3]^ b[4] ^ b[5]^b[6],b[3], b[3] ^ b[5] ^ b[6] ^ b[7], b[7], b[6]]
bi = ''.join(map(str, reversed(s)))
return chr(int(bi, 2))
m2 = "\xAA\xBA\xBE\x86\x87\xBB\x98\x92\xA5"
print("Message initial : (?? certains caractères -> non affichables -- emojis??, encodage spécial)", m2)
res2 = ''.join(code(c) for c in m2)
print("Second message déchiffré (???) ", res2)
To embed this project on your website, copy the following code and paste it into your website's HTML: