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

Algo et Python 29-08-24
27 0

Travail demandé

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 minuscules et des espaces.

2- Saisir la clé de cryptage qui est une chaine de caractères chcle composée uniquement par des lettres minuscules et ayant la même longueur que le message à crypter.

3- Remplacer chaque lettre du message msg d’indic i par la lettre minuscule d’ordre alphabétique k sachant que :

k=ABS(ord(msg[i]-ord(chcle[i]))+1 et l’espace ne sera pas crypté.

Exemple : Soit le message « bonne reception » et soit la clé  « homeofhappiness »

Message initial :        b o n n e    r e c e p t i o n

La clé de cryptage :  h o m e o f h a p p i n e s s

Message codé :        g a b  j  k    k e n l h g e e f

En effet : La lettre « b » sera remplcé par lettre d’ordre alphabétique k= ABS(ord(‘’b’’)-ord(‘’h’’)).+1 qui est ’’g’’ à k=ABS(66-72)+1=7 qui est d’ordre alphabétique de la lettre ‘’g’’.

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

Solution Algorithmique

L'algorithme pour crypter un message en utilisant une clé de cryptage peut être décrit de la manière suivante :

Étape 1 : Initialisation

Saisir le message à crypter (message), composé uniquement de lettres minuscules et d'espaces.

Saisir la clé de cryptage (chcle), une chaîne de caractères composée uniquement de lettres minuscules et ayant la même longueur que le message à crypter.

Étape 2 : Crypter le message

Initialiser une chaîne vide ch pour stocker le message crypté.

Pour chaque caractère message[i] du message :

Si message[i] est un espace, ajouter un espace à ch.

Sinon, calculer l'index de la nouvelle lettre cryptée :

1- Calculer la différence entre le code ASCII du caractère message[i] et celui de chcle[i].

2- Prendre la valeur absolue de cette différence, puis ajouter 1 pour obtenir l'index de la nouvelle lettre (k).

3- Convertir cet index en caractère alphabétique et ajouter ce caractère à ch.

4- Répéter l'étape 2 pour tous les caractères du message.

Étape 3 : Afficher le message crypté

Afficher la chaîne ch qui contient le message crypté.

Dans cet algorithme, On va utiliser 5 fonctions :

Déclaration des objets

Objet Type / Nature
message chaîne des caractères
chcle  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 verif_cle

Cette fonction vérifie que le cle saisi contient uniquement des lettres minuscules.

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 saisie_cle

Cette fonction saisit le clé composé uniquement des chiffres et de même longueur que le message

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
ch 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.

QLineEdit nommé 'cle' pour entrer un cle.

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

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