Sécuriser les messages à envoyer – Bac pratique 2017 [ Algorithme + Python ]

Algo et Python 27-09-24
38 0

Travail demandé

Dans le but de sécuriser les messages à envoyer, on peut faire appel à une méthode de cryptage. Une des méthodes utilisées consiste à remplacer chaque lettre du message à crypter par celle qui la suit de p positions dans l’alphabet français, ou p désigne le nombre de mots du message.

NB : on suppose que le caractère qui suit la lettre ‘Z’ est le caractère ‘A’ et celui qui suit la lettre ’’z’’ est le caractère ‘a’.

Le caractère espace ne subit aucune modification.

Le code ASCII de la lettre ‘’a’’ est égale à 97 et celui de la lettre ‘’A’’ est égale à 65.

Exemple : Pour le message ‘’Examen Pratique En Informatique’’.

Etant donné que le message à crypter est formé de 4 mots, pour la lettre alphabétique ‘’E’’ par exemple, elle sera remplacée par ‘I’ car en ajoutant au code ASCII de ‘E’ qui est 69, on obtient 73 qui est le code ASCII de ‘’I’’.

En continuant à appliquer ce principe de codage, le message crypté sera :

"Ibeqir Tvexmuyi Ir Mrjsvqexmuyi"     

On se propose d’écrire un programme Python qui permet de saisir un message formé uniquement de lettres et d’espaces puis de l’afficher crypté, en utilisant le principe ci-dessus.

NB : Le message peut contenir des espaces superflus (inutiles).

Solution Algorithmique

Pour crypter un message en utilisant le principe décrit, nous pouvons suivre un algorithme structuré en plusieurs étapes. Voici le principe algorithmique détaillé :

1. Saisie et nettoyage du message :

Lire le message de l'utilisateur.

Éliminer les espaces superflus au début, à la fin et entre les mots en utilisant un nettoyage des espaces.

2. Comptage des mots :

Compter le nombre de mots dans le message. Le nombre de mots, pp, sera utilisé comme le décalage des lettres dans l'alphabet pour crypter chaque caractère alphabétique.

3. Application du décalage sur chaque lettre : Parcourir chaque caractère du message :

- Si c'est une lettre majuscule (A-Z), appliquer le décalage en prenant en compte le code ASCII. Utiliser le modulo 2626 pour gérer le dépassement après la lettre 'Z'.

- Si c'est une lettre minuscule (a-z), effectuer la même opération en utilisant les bornes ASCII pour les minuscules.

- Si c'est un espace, laisser tel quel.

4. Affichage du message crypté :

Une fois chaque lettre traitée, afficher le message crypté.

Dans cet algorithme, On va utiliser une fonction et deux procédures:

Algorithme du programme Principal

Déclaration des objets

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

 

La fonction verif_mot

Cette fonction vérifie si le mot saisi est formé uniquement des lettres.

La fonction verif_message

Cette fonction vérifie si un message est formé uniquement de lettres et d’espaces.

Déclaration des objets

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

 

La fonction saisie_message

Cette fonction oblige l'utilisateur à saisir un message formé uniquement des lettres et des espaces.

Déclaration des objets

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

 

La fonction crypter_message

Cette fonction crypte le message saisi par l'utilisateur.

Déclaration des objets

Objet Type / Nature
ch_crypte chaîne des caractères
p entier
i entier
nbr_mots entier

 

Solution en Python

Exécution du programme

Solution en Python et Designer QT

Pour créer une application en Python et Designer QT qui a pour but de crypter un message selon le principe décrit ci dessus, 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é 'ch' pour entrer le message à crypter

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

QPushButton nommé 'bt_crypter' pour crypter le message

Enregistrez le fichier avec l'extension .ui, par exemple cryptage_message-interace.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