Besoin d'aide pour un projet en NSI

Signaler
-
Messages postés
31019
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
23 février 2021
-
Bonjour, j'ai un travail (plusieurs code) en NSI et je ne comprend pas comment il faut faire… Le code que je dois faire est en Python.

En premier lieu, il faut que je code un code César Cryptage vers Décryptage
- Force brute : où on test tout
- Subtilité : on s'appuie sur les particularités de la langue française
Et inversement Décryptage vers Cryptage

En second lieu dan le même genre un code ASCII cette fois-ci Crypatge vers Décryptage
Et aussi inversement Décryptage vers Cryptage

et pour finir, un code ou les deux sont combiné pour faire un cryptage puissant et bien sûr aussi un Décryptage

Condition/Consigne :
- Récupérer chaque caractère de l'original
- Décale autant de fois dans l'alphabet que la clé
- Afficher texte crypté
- Gestion fin de l'alphabet => passage de 2 à A
- Gestion des caractères spéciaux

Je ne comprend vraiment pas… surtout je ne sais pas par où commencer…

Si vous voulez ce que j'ai commencé n'hésiter pas a me le demander ;)

En espérant d'être claire,
A très vite.

Merci d'avance


Configuration: Windows / Chrome 88.0.4324.182

2 réponses

Messages postés
31019
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
23 février 2021
7 400
Bonjour,

Oui il faut que tu nous donnes ce que tu as commencé. Car nous ne faisons pas les exercices à la place des élèves ;-)

Après tu devrais d'abord nous expliquer, avec du texte, comment à la main tu fais un cryptage de César, puis comment tu vas décrypter et enfin que peut-on imaginer dans le cas de la force brute ? C'est indispensable de savoir ce que l'on va faire, avant de coder comment on va le faire.

Pour poster un source : Pour la mise en forme des sources, au dessus de la zone d'édition de tes messages, il y a des icônes pour l'enrichissement du texte. Celle qui a cet aspect
<> ▼
permet d'appliquer au code, suivant une liste de valeurs, le format correspondant à sa nature.
Un petit tuto là : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code


Merci, voilà ce que j'ai commencé :
#Code César

alphabet = ('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','W','X','Y','Z') #alphabet normal
texte = "LA PORTE EST BLEUE" #PHRASE A CODER
list_position = [ ]
for i in range(len(texte)):
    texte[i]

cle_cryptage = ("Quelle est la clé de cryptage ?")      #clé de cryptage mettre INPUT


for i in range(len(alphabet)):
    print(alphabet[i])
    #print(texte[2])


Pour "force brute" c'est le fait de tester chaque possibilité (chaque clef de cryptage)

Cryptage César à la main : https://ibb.co/g9HX8x8
∟lien Google Drive (c'est la même image) :
https://drive.google.com/file/d/19QGruPMyNyEyiZuvY8az86ZccTf70MNZ/view?usp=sharing
Messages postés
31019
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
23 février 2021
7 400
Tu n'es pas très loin, et cela ne relève pas d'une méthode ;-)

Déjà il faudrait récupérer le nombre clé de cryptage par un input.

for i in range(len(alphabet)):
là il ne sert à rien,

for i in range(len(texte)): 
c'est un début,
maintenant il faut trouver dans l'alphabet quelle est la position la lettre texte[i], tu pourrais faire une boucle à la main sur alphabet pour la trouver, ou tu peux utiliser la méthode sur liste liste.index(chaine)
une fois que tu as l'indice, tu ajoutes la clé, en tenant compte qu'arrivé à 26 (Z), le suivant c'est 1 (A). et ainsi tu obtiens l'indice de la lettre cryptée.