Browse Source

Ajout du code de l'équipe A

master
Dimitri Merejkowsky 4 years ago
parent
commit
4ce4ea00e9
9 changed files with 121 additions and 145 deletions
  1. +0
    -43
      saison-2/sources/espionnage/bordurie/encrypt.py
  2. +0
    -33
      saison-2/sources/espionnage/bordurie/test_chiffre.py
  3. +37
    -0
      saison-2/sources/espionnage/chiffre.py
  4. +44
    -0
      saison-2/sources/espionnage/chiffre2.py
  5. +40
    -0
      saison-2/sources/espionnage/dechiffre.py
  6. +0
    -0
      saison-2/sources/espionnage/encrypted-message.txt
  7. +0
    -6
      saison-2/sources/espionnage/notes
  8. +0
    -62
      saison-2/sources/espionnage/syldavie/decrypt.py
  9. +0
    -1
      saison-2/sources/espionnage/syldavie/message-1.txt

+ 0
- 43
saison-2/sources/espionnage/bordurie/encrypt.py View File

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

+ 0
- 33
saison-2/sources/espionnage/bordurie/test_chiffre.py View File

@@ -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'

+ 37
- 0
saison-2/sources/espionnage/chiffre.py View File

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

+ 44
- 0
saison-2/sources/espionnage/chiffre2.py View File

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

+ 40
- 0
saison-2/sources/espionnage/dechiffre.py View File

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

saison-2/sources/espionnage/syldavie/message-2.txt → saison-2/sources/espionnage/encrypted-message.txt View File


+ 0
- 6
saison-2/sources/espionnage/notes View File

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

+ 0
- 62
saison-2/sources/espionnage/syldavie/decrypt.py View File

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

+ 0
- 1
saison-2/sources/espionnage/syldavie/message-1.txt View File

@@ -1 +0,0 @@
GVAGVAFRFGRZCNERQHFCRPGERCERARMYRFZRFHERFARPRFFNVERF