Created
December 26, 2025 21:22
-
-
Save Netmisa/2b367a199654e7e15f13ae886a02ae0e to your computer and use it in GitHub Desktop.
[FCSC] - À l'aise
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ## Description | |
| Cette épreuve vous propose de déchiffrer un message chiffré avec la méthode inventée par Blaise de Vigénère. La clé est `FCSC` et le message chiffré est : | |
| ```txt | |
| Gqfltwj emgj clgfv ! Aqltj rjqhjsksg ekxuaqs, ua xtwk | |
| n'feuguvwb gkwp xwj, ujts f'npxkqvjgw nw tjuwcz | |
| ugwygjtfkf qz uw efezg sqk gspwonu. Jgsfwb-aqmu f | |
| Pspygk nj 29 cntnn hqzt dg igtwy fw xtvjg rkkunqf. | |
| Le flag est le nom de la ville mentionnée dans ce message. | |
| ``` | |
| ## Solution | |
| ```python | |
| def decrypt(text: str, key: str) -> str: | |
| i = 0 | |
| result = "" | |
| key_len = len(key) | |
| for c in text: | |
| if ord(c.upper()) >= 65 and ord(c.upper()) <= 90: | |
| diff_c = (ord(c.upper()) - ord(key[i % key_len].upper())) % 26 | |
| result += chr(diff_c + 65) | |
| i += 1 | |
| else: | |
| result += c | |
| return result | |
| f = open("message.txt", "r") | |
| print(decrypt(f.read(), "FCSC")) | |
| f.close() | |
| ``` | |
| ## Explication | |
| En se renseignant sur le chiffrement inenté par Blaise de Vigénère, via cette page wikipedia https://fr.wikipedia.org/wiki/Chiffre_de_Vigen%C3%A8re, jai pris connaissance de "La table de Vigenère". | |
| J'ai donc ensuite fait un script qui va: | |
| 1. Parcourir chaque caractère du message chiffré. | |
| 2. Par simplicité, j'ai converti chaque caractère en majuscule. | |
| 3. Je conserve les caractères qui ne sont pas des lettres | |
| 4. Je soustrais le cose ascii du caractère chiffré par celui de la clé | |
| 5. Je concat les caractères dans une nouvelle chaîne de caractère, que je retourne à la fin. | |
| ## Résultat | |
| En exécutant le script, on obtient le message déchiffré suivant : | |
| ```bash | |
| $ python main.py | |
| BONJOUR CHER AGENT ! VOTRE PROCHAINE MISSION, SI VOUS | |
| L'ACCEPTEZ BIEN SUR, SERA D'INFILTRER LE RESEAU | |
| SOUTERRAIN OU SE CACHE NOS ENNEMIS. RENDEZ-VOUS A | |
| NANTES LE 29 AVRIL POUR LE DEBUT DE VOTRE MISSION. | |
| ``` |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment