CRYPTAGE / DECRYPTAGE DE TEXTE EN UTILISANT L'ALGORYTHME DE VIGENERE

Pym Corp Messages postés 166 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 18 novembre 2007 - 26 août 2005 à 18:26
stabe Messages postés 144 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 17 juin 2006 - 24 juin 2009 à 20:58
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/33456-cryptage-decryptage-de-texte-en-utilisant-l-algorythme-de-vigenere

stabe Messages postés 144 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 17 juin 2006
24 juin 2009 à 20:58
bonjour

très bonne source, claire et qui fonctionne bien

va m'être bien utile

à+
cs_koops27 Messages postés 2 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 4 février 2009
25 mars 2009 à 18:35
bonjour
question bête mais ou ce trouve l'exécutable car j'ai installer visual studio 8,mais rien n'a faire pour lancer le programme !?
bigbrother449 Messages postés 2 Date d'inscription lundi 8 décembre 2008 Statut Membre Dernière intervention 26 janvier 2009
8 déc. 2008 à 16:13
Bonjour tout le monde!
Je suis désolé de poster ce message, mais je suis très nul en matière de cryptage et de décryptage. Je ne sais pas ou m'adresser!
J'ai essayé bon nombre de chose, puis je vous ton addon. je me suis dit qu'il est surement intéréssant pour moi. Mais je n'arrive pas a le faire fonctionner!
Alors si quelqun peut m'aider ou me donner un lien d'un tutoriel ce serais gentil!
Merci bcp! dsl je suis un big noob ^^
darkeenu Messages postés 25 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 10 septembre 2005
14 juin 2006 à 01:49
et bien merci pour toutes ces infos, c'est plutot intéressant !! C'est vrai que mon problème c'est de faire des algos un peu complexes et souvent pour pas grand chose :).

Et merci également pour les compliments.

@+
VladislavIV Messages postés 16 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 1 mai 2007
16 avril 2006 à 20:09
Oups... Petite correction : le déchiffrement ne se fait pas selon la même formule :
asc(clair) = (asc(codé) - asc(clé)) mod 256. Là ça marche !!

Au temps pour moi, je retire ce que j'ai dit. Je récapitule :

Chiffrer : (lettre_claire + lettre_clé) mod 256
Déchiffrer : (lettre_codée - lettre_clé) mod 256

Voilà !

Mais ton algo montre bien qu'avec un peu de volonté on y arrive, même sans s'embrouiller avec les maths ! ;) Cela dit, ça pourra t'économiser des lignes si tu fais une grosse appli sur les algorithmes de chiffrement.

Bon boulot, et bonne continuation !
A++
VladislavIV Messages postés 16 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 1 mai 2007
16 avril 2006 à 17:21
Salut DARKEENU,

A priori, cette formule devrait salement accélérer le processus... Maintenant, en tant qu'êtres humains, on ne verrait peut-être pas la différence ! ;)

Tu utilise tous les caractères ascii, exact ? donc pour avoir le code ascii d'un caractère crypté, tu fais : (asc(clair) + asc(clé)) mod 256. Du coup, tu as seulement deux mécanismes à faire tourner autour : parcourir toute la chaîne à crypter d'un côté, et en même temps tourner en boucle sur la clé de cryptage.

Ca devrait diminuer pas mal la longeur de ton code.
Exemple :

dim txt_clair as string
dim clé as string
dim txt_crypté as string
dim i as integer 'compteur de boucle : déplacement sur txt_clair
dim j as integer 'compteur de boucle : déplacement sur clé

'initialisation
txt_crypté = ""
j = 0

For i = 0 to txt_clair.length - 1 'parcours de la chaîne à crypter
'cryptage
txt_crypté = txt_crypté & chr((asc(txt_clair.chars(i)) + asc(clé.chars(j))) mod 256)

'on avance sur la clé
j = j + 1
If j > clé.length - 1 Then j = 0 'on a atteint la fin de la clé : on se replace au début
Next

Ca suffit à chiffrer tout le texte !

Désolé c'est du .NET, je sais pas si c'est pareil sous VB6... Donc c'est plus court, c'est plus rapide. Tu trouveras des détails sur le chiffre de Vigenère sur http://fr.wikipedia.org/wiki/Vigen%C3%A8re.

Notamment ceci : pour décrypter un texte chiffré avec la table de Vigenère, il suffit de lui refaire subir le même traitement. Donc tu ne devrais pas avoir de fonction "décrypter", cela devrait fonctionner rien qu'en repassant le texte chiffré dans ta fonction Crypter. Ce qui n'est pas le cas... Ce n'est donc pas un chiffre de Vigenère !

Perso, je viens de tester la formule citée... Bilan : ça ne marche pas avec moi non plus !! :) Je vais essayer de voir pourquoi...

A++ !
darkeenu Messages postés 25 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 10 septembre 2005
16 avril 2006 à 03:20
salut VladislavIV,

ben encore une fois je ne comprends pas tellement l'utilité de la chose (ça doit être parce que les maths et moi on ne s'entend pas trop). Cela accélèrerait-il le calcul de cryptage/décryptage (qui pour ma part me parait satisfaisant) ? Aussi concernant l'algo il ne me paraissait pas si compliqué en fait :)
VladislavIV Messages postés 16 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 1 mai 2007
5 avril 2006 à 20:35
Salut DARKEENU,

Si tu veux élargir le jeu de caractères, tu adaptes la numérotation : pour le jeu A..Za..z tu comptes 0..51, etc... Le tout c'est de respecter la même numérotation partout, et de faire modulo le nombre de caractères. C'est mathématique. A priori.

Maintenant, je dis ça, mais j'ai pas testé... Je te laisse l'honneur ;)

A++
darkeenu Messages postés 25 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 10 septembre 2005
4 avril 2006 à 23:17
salut VladislavIV,

ben si je limite les lettres de 0 à 25 je ne pourrais faire que les lettres de A à Z non ? Moi j'aimerais prendre tous les caractères possibles.
VladislavIV Messages postés 16 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 1 mai 2007
19 janv. 2006 à 13:58
Au fait, darkeenu, je sais pas si tu sais, mais en numérotant les lettres de 0 à 25, on obtient :

(lettre_clair + clé) modulo 25 = lettre_codée...

De l'utilité d'exploiter les propriétés mathématiques des fonctions de cryptage, pour ne pas s'embêter à faire de gros algos...
darkeenu Messages postés 25 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 10 septembre 2005
6 sept. 2005 à 21:03
c bon j'ai géré le retour chariot puisque apparement c t génant... Donc voili voulou, j'espère que ça vous plaira, et moi c géré pour l'aller et le retour (cryptage comme décryptage)
mousse31 Messages postés 2 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 6 septembre 2005
6 sept. 2005 à 15:20
Oui mais ensuite quand je recripte un coup puis redecrypt j'ai plus des ìé mais de é seulement
Mousse31 :-)
cs_Dede Messages postés 61 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 24 juillet 2006
6 sept. 2005 à 15:13
Pour ma part, j'ai juste ajouté en fin de module de décryptage :

ResuTxT = Replace(ResuTxT, "ìé", vbCrLf)

ou "ìé" rprésente le codage du retour-chariotte.

Dede :-)
mousse31 Messages postés 2 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 6 septembre 2005
5 sept. 2005 à 10:54
Bonjour,
Merci pour ce bout de code. Malheureusement il n'encode pas les retour à la ligne.
Quelqu'un saurait comment faire ?

Merci d'avance
darkeenu Messages postés 25 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 10 septembre 2005
2 sept. 2005 à 00:13
Re dédé ;)

Tout d'abord merci pour tes remarques, j'avais remarqué que les retours à la lignes ne sont pas traités, puisque je n'ai pas travaillé pour... Ensuite, Je travaille la programmation bien avant la mise en forme, puisque je fais des algos sur papier, ensuite des tests de chaque module, puis j'incorpore chaque module dans le programme. Et enfin, je donne une halure plus gaie (rien avoir avec l'homosexualité..., juste du graphisme). Même si ça ne se voit peut être pas (lol) j'ai un DUT info...
Cela dit, comme je l'ai précisé dans un de mes commentaires, je ne suis pas un gars qui pense qu'à la programmation, je fais les progs dans le but de satisfaire mes besoins ou ceux de mes proches. Et ensuite je les met en ligne pour ceux qui en auront besoin.
cs_Dede Messages postés 61 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 24 juillet 2006
1 sept. 2005 à 17:09
Au temps pour moi,
et pourtant, on me l'avait déja fait remarquer.
Bravo et pas véxé.

Dede :-)
stef2004 Messages postés 105 Date d'inscription mercredi 4 février 2004 Statut Membre Dernière intervention 29 décembre 2005
1 sept. 2005 à 15:11
sans vouloir vexer personne, on n'écrit pas "Autant pour moi" mais "Au temps pour moi".
Cette expression vient de l'ordre militaire "Au temps", qui signifie qu'il faut répeter l'action précédente, non faite correctement.
Bon finie l'heure d'orthographe,
bravo pour l'algorithme
a bientot
stef2004
cs_Dede Messages postés 61 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 24 juillet 2006
1 sept. 2005 à 12:03
Pop, pop, pop...
Autant pour moi !

Pour ma remarque sur les accents, cela vient d'une modif de ma part afin de corriger le bug du retour à la ligne.

Autant pou moi, donc.

Milles s'cuses Dede :-)
cs_Dede Messages postés 61 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 24 juillet 2006
1 sept. 2005 à 11:41
J'ai regardé un peu plus loin, et j'ai quelques remarques (constructives uniquement).

Problème sur les lettres accentuées qui ne sont pas redécryptées correctement.
problème sur les retours à la ligne (VBCRLF, même chose que ci-dessus).

Puis là, c'est perso, pourquoi faire un semblant de fichier ini, fais en un vrai compatible avec les fonctions des fichiers de ce type (tu trouveras tout pour le faire sur ce même site).

Et enfin, si je peux me permettre une réflexion plus générale (car je ne voudrais surtout pas te vexer), il me semble préférable de travailler la programmation à fond et de voir seulement ensuite la présentation et les petits plus.
C'est comme le batiment, en premier le gros oeuvre qui tiens bien et qui est fonctionnel, et ensuite la déco et les peintures.

En tous les cas bravo pour cet algo que je ne connaissait pas et bonne continuation.
Dede :-)
jrbleboss Messages postés 480 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 3 septembre 2007 1
1 sept. 2005 à 11:09
Ok tu as raison !!!

Très bien, en plus c'est rapide.
darkeenu Messages postés 25 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 10 septembre 2005
1 sept. 2005 à 04:28
salut JRBLEBOSS, je trouve que l'algorithme de Vigénère est suffisemment sur si tu utilise une clef longue. Puisque la seule façon de décrypter un texte crypté grâce à Vigénère, c'est soit de connaitre la clef, soit de faire une analyse de fréquence des lettres. Or si la clé est longue, la fréquence est rompue, et le décryptage est on va dire quasi impossible (puisque rien n'est impossible en informatique, c bien connu) ;)
Et DEDE, merci pour le tuyau, j'avais pas si bien pigé que ça ce que m'avais dit JJDay alors... Désole :S
Bon je met la nouvelle mise à jour de suite.
Amusez-vous bien :)
cs_Dede Messages postés 61 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 24 juillet 2006
31 août 2005 à 16:38
Scuse moi, je cherchais un module rapide de cryptage de texte, et je tombe sur le tiens.
Je tombe sur un plantage dans ta fonction de cryptage :
La variable de gestion de position (POS) est déclarée en integer, donc elle plante sur un texte long (>32000 cars).

Bon je reteste tout cela.

Merci tout de même, et bonne continuation.

Dede :-)
jrbleboss Messages postés 480 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 3 septembre 2007 1
30 août 2005 à 10:38
Grand frère ?
cs_ynes Messages postés 1 Date d'inscription lundi 29 août 2005 Statut Membre Dernière intervention 29 août 2005
29 août 2005 à 18:41
Merci grand frère. Et beaucoup de courage.
jrbleboss Messages postés 480 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 3 septembre 2007 1
29 août 2005 à 15:35
Ce n'est pas un cryptage très sécurisé mais il fonctionne rapidement et bien.

Continue.

JRB

9/10
darkeenu Messages postés 25 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 10 septembre 2005
29 août 2005 à 00:56
ok merci du tuyau mec !!!!
j'aime bien les gars comme toi ;) c cool. Je v modifier ça de suite
Utilisateur anonyme
27 août 2005 à 17:38
Salut:
je cherchais a faire un algorythme de cryptage en DotNet, ca tombe bien ca devrait pas pauser trop de problemes a porter.

Toutefois il y a un petit bug dabs ta source, si on rentre un texte de plus de 32768 caracteres, ca plante.
c'est du au fait que les variables de comptage sont déclarées en "Integer", il faut les déclarer en "long" pour pouvoir crypter des textes de plus de 32768 caractères.
Rejoignez-nous