Cryptage message en utilisant un clé (version 3) – Bac Pratique 2015 [ Algorithme + Python ]

Algo et Python 30-08-24
95 0

Sujet bac informatique pratique 2015 (Bac scientifique)

Pour sécuriser l’envoi des messages, deux chercheurs cryptent  leurs messages en utilisant le principe suivant :

1- Saisir le message à crypter msg, sachant qu’il est composé  par des lettres majuscules et des espaces.

2- Faire la somme des chiffres du code ASCII  de chaque lettre du message msg. Dans le cas ou cette somme n’est pas un nombre à un seul chiffre on rend l’addition jusqu’à obtenir un seul chiffre auquel on ajoute une valeur aléatoire allant de 0 à 17. Le nombre obtenu représentera le rang alphabétique de la lettre de remplacement en majuscule.

Exemple : Pour le message « BACSC », on aura après cryptage :  « RSLRZ ».

En effet « B » est remplacé par  « R » car le code ASCII de B est 66 et après l’addition des chiffres on obtient 3 (6+6=12 à 1+2=3) et si la valeur aléatoire est 15, l’ordre alphabétique du caractère de remplacement est 18=3+15 qui « R ».

Ecrire un programme Python qui permet de saisir un message et une clé de cryptage puis d’afficher le message crypté.

Solution Algorithmique

Pour écrire un algorithme qui crypte un message selon le principe décrit, nous allons suivre les étapes suivantes :

Initialisation : Demander à l'utilisateur de saisir le message à crypter.

Cryptage du message :

Initialiser une chaîne vide ch qui contiendra le message crypté.

Pour chaque caractère dans le message  :

Si le caractère est un espace, l'ajouter directement à ch et passer au caractère suivant.

Sinon :

1- Convertir le caractère en son code ASCII.

2- Calculer la somme des chiffres du code ASCII du caractère:

a) Si la somme est supérieure ou égale à 10, continuer à additionner les chiffres jusqu'à obtenir un seul chiffre.

b) Ajouter une valeur aléatoire entre 0 et 17  au résultat obtenu pour déterminer le rang alphabétique du caractère de remplacement :

c) Convertir ce rang en une lettre majuscule correspondante.

d) Ajouter cette nouvelle lettre à ch.

Affichage du message crypté : Afficher le message crypté ch.

Dans cet algorithme, On va utiliser 3 fonctions :


Algorithme du programme principal

Déclaration des objets

Objet Type / Nature
message chaîne des caractères

 

La fonction verif_message

Cette fonction vérifie que le message saisi contient uniquement des lettres minuscules et des espaces

Déclaration des objets

Objet Type / Nature
i entier

 

La fonction saisie_message

Cette fonction saisit le message composé uniquement des lettres et des espaces

Déclaration des objets

Objet Type / Nature
ch chaine des caracteres

 

La fonction crypter_message

Cette fonction crypte le message entré par l'utilisateur.

Déclaration des objets

Objet Type / Nature
i entier
j entier
code entier
ch chaîne des caractères
ch1 chaîne des caractères

 

Solution en Python

Exécution du programme

Solution en Python et Designer QT

Pour créer une application en Python pour crypter un message, on va suivre ces étapes :

1- Créer l'interface graphique avec Qt Designer

a- Ouvrez Qt Designer et créez un nouveau fichier de type Main Window.

b- Ajoutez ces widgets:

QLineEdit nommé 'message' pour entrer un message.

QPushButton nommé 'bt_crypter' pour exécuter le module crypter_message.

QLabel nommé 'msg' pour afficher un message d'erreur et le message crypté


Enregistrez le fichier avec l'extension .ui, par exemple crypter-message.ui.

2- Créer le script Python pour l'application

Voici un exemple de script Python qui utilise l'interface graphique générée par Qt Designer.

Exécution du programme

 

Vous pouvez voir aussi :

1) des exercices sur les chaînes des caractères

2) des exercices sur les tableaux

3) des sujets Bac pratique

4) des sujets Bac théorique

0 commentaire

laisser un commentaire

Veuillez noter s'il vous plaît*

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Passion de robotique

Atelier robotique

Construction des robots

Bras robotique

Maison intelligente

But de ce site web

La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.

Coordonnées

Zaouiet Kontech-Jemmel-Monastir-Tunisie

+216 92 886 231

medaliprof@gmail.com

Photos des articles

Site robotique réalisé par Mohamed Ali-Prof Info