def chiffrement_symetrique(message : str, cle : str) -> str:
""" Chiffrement/Déchiffremebt symétrique de 'message' avec 'cle' en
utilisant l'opérateur booléen 'xor'
Pré-conditions :
>>> 'message' : chaîne de caractères non vide à chiffrer/déchiffrer
>>> 'cle' : chaîne de caractères non vide utilisée comme clé
Post-condition :
>>> renvoie une chaîne de caractères correspondant à 'message' chiffré
ou déchiffré """
# contrôle des pré-conditions
if type(message) != str or type(cle) != str or message == "" or cle == "":
return ""
message_chiffre, lm, lc,idc = "", len(message), len(cle), 0
for index in range(lm) :
message_chiffre += chr(ord(message[index]) ^ ord(cle[idc]))
idc +=1
if idc == lc :
idc = 0
return message_chiffre
if __name__ == '__main__':
message = "Numérique et Sciences Informmatiques en Terminale"
cle = "Xd7c-k?l5oP§qsaz3(4%"
assert chiffrement_symetrique(message, cle) == '\x16\x11Z\x8a_\x02N\x19PO5ÓQ \x02\x13VFW@+D~\rK\x04M\x01X\x0e$Î\x00\x06\x04\t\x13MZ\x05\x0c\x01E\x0eD\x05^\x00P'
message = '\x16\x11Z\x8a_\x02N\x19PO5ÓQ \x02\x13VFW@+D~\rK\x04M\x01X\x0e$Î\x00\x06\x04\t\x13MZ\x05\x0c\x01E\x0eD\x05^\x00P'
assert chiffrement_symetrique(message, cle) == 'Numérique et Sciences Informmatiques en Terminale'
Téléchargement d’un fichier : fonction écrite en langage Python
Auto-évaluation
Évaluez votre degré de réussite. Comparez votre réponse avec la proposition ci-dessus.
1 – Indiquez la durée mise pour réaliser le travail demandé :
Moins de 15 minutes
Entre 15 minutes et 30 minutes
Plus de 30 minutes
2 – Indiquez les conditions de réalisation :
Sans aide (documentation, tutoriel, forum…)
Avec aide :
>>> documentation
>>> tutoriel
>>> forum
3 – indiquez votre degré de réussite du travail demandé :
entre 75 et 100 %
entre 50 et 75 %
entre 25 et 50%
moins de 25 %