Fascicule 2OS PM
Télécharger le fascicule d'option spécifique math ici.
Télécharger le fascicule d'option spécifique math ici.
1.1.1, 1.1.2, 1.1.3, 1.1.4,
1.1.5, 1.1.6, 1.1.7, 1.1.8,
1.1.9, 1.1.10
1.1.11, 1.1.12, 1.1.13, 1.1.14.
1.2.1 a), 1.2.1 b), 1.2.1 c), 1.2.1 d), 1.2.1 e), 1.2.1 f), 1.2.1 g), 1.2.1 h), 1.2.1 i).
# chiffrer et déchiffrer le code de César
def chiffrer_cesar(message, decalage):
chiffre = ""
for c in message:
indice = ord(c)-65 + decalage
indice = indice%26 + 65
chiffre = chiffre + chr(indice)
return chiffre
def dechiffrer_cesar(chiffre, decalage):
return chiffrer_cesar(chiffre, -decalage)
# chiffrer et déchiffrer le code de Vigenère
def chiffrer_vigenere(message, trappe):
l = len(trappe)
chiffre = ""
for i, c in enumerate(message):
k = ord(trappe[i%l]) - 65
chiffre = chiffre + chiffrer_cesar(c, k)
return chiffre
def dechiffrer_vigenere(chiffre, trappe):
l = len(trappe)
message = ""
for i, c in enumerate(chiffre):
k = ord(trappe[i%l]) - 65
message = message + dechiffrer_cesar(c, k)
return message