Crypter les messages – Bac pratique 2017 [ Algorithme + Python ]

Algo et Python 27-09-24
27 0

Travail demandé

Dans le but de sécuriser les messages à envoyer, on peut faire appel à une méthode de cryptage.

Soit la méthode de cryptage suivante qui consiste à crypter par transposition de caractères, un message M de longueur L décrite comme suit :

-Déterminer tous les diviseurs de L autres que 1 et lui-même.

-Pour chaque diviseur d de L et en commençant par le plus petit, on inverse symétriquement les caractères de chaque bloc de longueur d.

Exemple : Pour le message ‘’INFORMATIQUE’’ dont la longueur L=12.

Les diviseurs de 12 autres que 1 et 12 sont : 2, 3, 4 et 6

Les inversions des blocs de caractères seront effectuées comme suit :

Après inversion de chaque bloc de 2 caractères de la chaîne ‘’INFORMATIQUE’’, on aura la chaîne ‘’NIOFMRTAQIEU’’.

Après inversion de chaque bloc de 3 caractères de la chaîne ‘’ NIOFMRTAQIEU’’, on aura la chaîne ‘’OINRMFQATUEI’’.

Après inversion de chaque bloc de 4 caractères de la chaîne ‘’ OINRMFQATUEI’’, on aura la chaîne ‘’RNIOAQFMIEUT’’.

Après inversion de chaque bloc de 4 caractères de la chaîne ‘’ RNIOAQFMIEUT’’, on aura la chaîne ‘’QAOINRTUEIMF’’.

On se propose d’écrire un programme Python qui permet de saisir un message M dont la longueur est un nombre non premier et > 4 et d’afficher le message crypté en utilisant la méthode décrite précédemment.

Solution Algorithmique

Voici l'approche algorithmique pour crypter un message en utilisant la méthode de transposition par inversion de blocs de caractères selon les diviseurs de la longueur LL du message, comme décrit dans l'exercice :

1- Saisie du message :

Demander à l'utilisateur de saisir un message M.

Calculer la longueur L du message.

2- Détermination des diviseurs de :

Identifier tous les diviseurs de L autres que 1 et L lui-même. Ces diviseurs seront utilisés pour inverser des blocs de caractères dans le message.

3- Inversion des blocs :

Pour chaque diviseur d, en commençant par le plus petit, inverser chaque bloc de d caractères du message de façon symétrique.

Répéter cette opération pour tous les diviseurs trouvés.

4- Affichage du message crypté :

Une fois toutes les inversions effectuées, 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
ch chaîne des caractères

 

La fonction saisie_message

Cette fonction oblige l'utilisateur à saisir un message dont sa longueur est non premier et > 4.

Déclaration des objets

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

 

La fonction inversion

Cette fonction inverse un bloc de d caractères du message de façon symétrique.

Déclaration des objets

Objet Type / Nature
ch chaîne des caractères
ch_inverse chaîne des caractères
bloc chaîne des caractères
i entier

 

La fonction crypter_message

Cette fonction crypte le message saisi par l'utilisateur.

Déclaration des objets

Objet Type / Nature
l entier
i 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

QPushButton nommé 'bt_crypter' pour crypter le message

QLabel nommé 'resultat' pour afficher le message crypté

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