Programme de cryptage (VBA excel )

Fermé
blodclotboy - 11 oct. 2008 à 03:34
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 12 oct. 2008 à 20:27
Bonjour,

voici un petit programme de VBA sur lequel j'aimerai avoir de l'aide SVP.

Cryptage
La cryptographie est le codage/décodage d’un message pour le rendre illisible à ceux qui n’ont pas accès au système de cryptage. Un système de cryptographie très difficile à briser fut inventé au XVIe siècle par le français Vigénère. Il consistait en une combinaison de différents « chiffres de César ».
On peut en effet écrire 25 alphabets décalés par rapport à l’alphabet normal :
• l’alphabet qui commence par B et finit par …YZA (alphabet décalé de +1)
• l’alphabet qui commence par C et finit par …ZAB (alphabet décalé de +2)
l’alphabet qui commence par Z et finit par …WXY (alphabet décalé de +25), etc…
Le codage va s’effectuer sur le principe du chiffre de César : on remplace la lettre d’origine par la lettre occupant la même place dans le nouvel alphabet décalé.
Mais à la différence du chiffre de César, un même message va utiliser non pas un, mais plusieurs alphabets décalés. Pour savoir quels alphabets doivent être utilisés, et dans quel ordre, on utilise une clé.
Si cette clé est "SOURCE" et le message est "premier travail pratique !", on procèdera comme suit :
La première lettre du message (en majuscule), « P », est la 16ème lettre de l’alphabet normal. Elle doit être codée en utilisant l’alphabet commençant par la première lettre de la clé, « S ». Dans cet alphabet, la 16eme lettre est le « H ». « P » devient donc un « H ».
La deuxième lettre du message (toujours en majuscule), « R », est la 18ème lettre de l’alphabet normal. Elle doit être codée en utilisant l’alphabet commençant par la deuxième lettre de la clé, « O ». Dans cet alphabet, la 18ème lettre est le « F ». R devient donc un « F », etc.
Quand on arrive à la dernière lettre de la clé, on recommence à la première. Les lettres de la clé seront ainsi utilisées de façon cyclique (eg. S,O, U, R,C, E,S,O,U,R,C, E, etc.).
Écrire l’algorithme qui effectue un cryptage de Vigénère, en demandant bien sûr au départ le message à coder et la clé à l’utilisateur.
Validations : Pour le message à coder, vous devez valider que le message n’est pas vide (longueur ≥ 1), et qu’il ne contient que les lettres majuscules ou minuscules et les caractères spéciaux suivants "., !’?". La présence de n’importe quel autre caractère dans le message rendra ce message non-valide.
Pour la clé, elle ne doit pas être vide (longueur ≥ 1), et ne doit contenir que les lettres "a..z, A...Z". Dans les 2 cas, vous aurez à convertir toutes les lettres en majuscule en tout temps.
Votre programme commence par demander et valider le message à coder. Ensuite il demande et valide la clé pour les chiffres de César. Finalement, il calcule et affiche le message crypté (dans un MsgBox), et il décodera le message crypté (avec la même clé) pour voir si on peut récupérer notre message de départ.
Exemple : Quel est le message ? premier travail pratique!
Quel est la clé ? source
Voici le message codé : HFYDKIJ NICZSWF RVSHCHWI!
Voici le message décodé : PREMIER TRAVAIL PRATIQUE!

Procédure de Démarrage Module_Menu
La procédure principale du programme permet à l'utilisateur de faire un choix parmi les trois suivants:
* 1 ou E, e pour faire exécuter l’ÉCHANGE THERMIQUE
* 2 ou C, c pour faire exécuter le CRYPTAGE d’un message
* ANNULER pour quitter le programme.
Le menu devra être présenté dans un InputBox, et le choix de l’utilisateur devra être redemandé s’il n’est pas valide.
A voir également:

2 réponses

wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 243
11 oct. 2008 à 09:18
Bonjour

en fonction de ce que tu as posté, j'ai écrit quelque fonctions perso, utilisables dans un classeur (joint)
https://www.cjoint.com/?kljpnPjKHX
dans le module, en constante, un alphabet que tu peux modifier

mais je ne sais pas si j'ai répondu à ta question
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
12 oct. 2008 à 20:27
Salut,

tu fait clic sur le lien et tu télécharges le fichier
ensuite tu vas dans le VBA Editor

P.S. Pas d'adresse mail dans les messages. Merci.
0