Introduction
Dans ce projet, vous allez apprendre à implémenter un algorithme de chiffrement et de déchiffrement simple appelé "Chiffrement du Code Clair". Cette méthode de chiffrement a été utilisée dans le système de télégraphie chinoise précoce à la fin de la dynastie Qing.
👀 Aperçu
## Exemple 1
numb = 1530; encryption_text = "0383"
## Exemple 2
numb = 0; encryption_text = "9853"
## Exemple 3
numb = 12345; encryption_text = None
🎯 Tâches
Dans ce projet, vous allez apprendre :
- Comment comprendre la méthode de chiffrement et ses principes de base
- Comment implémenter la fonction
plain_code_encryption(numb)pour effectuer le chiffrement - Comment tester la fonction de chiffrement avec diverses entrées
- Comment gérer l'entrée de l'utilisateur et appeler la fonction de chiffrement
🏆 Réalisations
Après avoir terminé ce projet, vous serez capable de :
- Expliquer la méthode de "Chiffrement du Code Clair" et son contexte historique
- Implémenter un algorithme de chiffrement et de déchiffrement de base en utilisant Python
- Tester et valider la fonction de chiffrement avec différents scénarios d'entrée
- Intégrer l'entrée et la sortie de l'utilisateur dans le script de chiffrement
Comprendre la méthode de chiffrement
Dans cette étape, vous allez apprendre à connaître la méthode de chiffrement utilisée dans le projet "Chiffrement du Code Clair".
La méthode de chiffrement fonctionne comme suit :
- Les quatre chiffres du code clair sont respectivement additionnés aux quatre chiffres de la clé de chiffrement.
- Pour chaque addition de chiffre, si la somme est supérieure ou égale à 10, on omettra 10 et on ne gardera que le chiffre des unités.
- Lors du déchiffrement, on soustrait le mot de passe aux quatre chiffres de la clé de déchiffrement pour obtenir le code clair et trouver le texte correspondant.
Par exemple, disons que le code clair est 1530 et que la clé de chiffrement est 9853.
- Ajout du premier chiffre : 1 + 9 = 10, on considère 10 comme 0.
- Ajout du second chiffre : 5 + 8 = 13, on omettra 10 et on gardera 3.
- Ajout du troisième chiffre : 3 + 5 = 8.
- Ajout du quatrième chiffre (10 + 3 = 13, on omettra 10 et on gardera 3).
Le texte chiffré final est "0383".
Implémenter la fonction plain_code_encryption(numb)
Dans cette étape, vous allez implémenter la fonction plain_code_encryption(numb) dans le fichier plain_code.py.
- Ouvrez le fichier
plain_code.pydans votre éditeur de code. - Localisez la fonction
plain_code_encryption(numb). - Implémentez la fonction pour effectuer les tâches suivantes :
- Entrez un nombre arbitraire compris entre 0 et 9999 (y compris 0 et 9999), ajoutez 9853 à celui-ci, et obtenez un nombre de 4 chiffres (au format
str) après l'addition, puis renvoyez-le. - Si le nombre d'entrée est inférieur à 4 chiffres, complétez les positions manquantes avec 0. Par exemple, si le nombre d'entrée est 32, il doit être traité comme 0032.
- Ajoutez les nombres dans la même position. Si la somme est supérieure ou égale à 10, omettez 10 et gardez seulement le chiffre des unités.
- Si le nombre d'entrée n'est pas compris entre 0 et 9999, renvoyez
None.
- Entrez un nombre arbitraire compris entre 0 et 9999 (y compris 0 et 9999), ajoutez 9853 à celui-ci, et obtenez un nombre de 4 chiffres (au format
Voici le code complet de la fonction plain_code_encryption(numb) :
def plain_code_encryption(numb: int) -> str:
if numb < 0 or numb > 9999:
return None
numb_str = str(numb).zfill(4)
key_str = "9853"
encryption_text = "".join(
str((int(n) + int(k)) % 10) for n, k in zip(numb_str, key_str)
)
return encryption_text
Tester la fonction plain_code_encryption(numb)
Dans cette étape, vous allez tester la fonction plain_code_encryption(numb) avec les exemples fournis.
- Ouvrez le fichier
plain_code.pydans votre éditeur de code. - Ajoutez le code suivant à la fin du fichier :
if __name__ == "__main__":
print(plain_code_encryption(1530)) ## Sortie : "0383"
print(plain_code_encryption(0)) ## Sortie : "9853"
print(plain_code_encryption(12345)) ## Sortie : None
- Enregistrez le fichier et exécutez le script en utilisant la commande
python3 plain_code.py. - Vérifiez que la sortie correspond aux résultats attendus.
Gérer l'entrée de l'utilisateur
Dans cette étape, vous allez modifier le script pour accepter l'entrée de l'utilisateur et appeler la fonction plain_code_encryption(numb) avec le nombre fourni par l'utilisateur.
- Ouvrez le fichier
plain_code.pydans votre éditeur de code. - Localisez le code que vous avez ajouté dans l'étape précédente et remplacez-le par le code suivant :
if __name__ == "__main__":
txt = int(input())
print(plain_code_encryption(txt))
- Enregistrez le fichier et exécutez le script en utilisant la commande
python3 plain_code.py. - Lorsque vous êtes invité, entrez un nombre compris entre 0 et 9999, et le script affichera le texte chiffré.
Félicitations! Vous avez terminé le projet "Chiffrement du Code Clair". Vous avez appris à implémenter la méthode de chiffrement et à la tester avec diverses entrées.
Résumé
Félicitations! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires sur LabEx pour améliorer vos compétences.



