CHIFFREMENT DE VIGENERE (CARRÉ)

Signaler
Messages postés
436
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
5 février 2015
-
Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
-
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/27858-chiffrement-de-vigenere-carre

Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
21
OK, j'ai pigé le truc. J'ai dû prendre le Zip avant qu'il ne le mette à jour. Le décodage n'y était plus. Ca aurait dû être indiqué sous la date du post. J'avais viré le Zip, puisque indécodabilité :(((

En tout cas, il faudra commenter un peu le principe du codage.
Messages postés
436
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
5 février 2015

Hi,hi... sory ;)
Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
21
Il y a eu ambiguité des personnes avec «En relisant ta proposition de code». Ca faisait référence à RM50Man et non à DrJerome. C'est pas grave :))

Mais avant d'en dire plus, je re-regarderai le Zip.
Messages postés
436
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
5 février 2015

Je vois pas ce que tu veux dire, je proposais de mettre :
__________________________________
Carre :array[1..26] of array[1..26] of char;
__________________________________



dans les variables de :


__________________________________
var
Texte,Cle, etc...
__________________________________


et de mettre dans un événement oncreate :

__________________________________
var
i,j,n:byte;
begin
for i:=1 to 26 do
for j:=1 to 26 do
begin
n:=j+i+63; if n>90 then dec(n,26);
Carre[i][j]:=chr(n);
end;
__________________________________

c'était une proposition (sans imposer)...mais je vois pas pourquoi ça ne marcherait pas ? J'ai pas bien compris en fait ce que tu voulais dire ;)

Amicalement,

drjerome
Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
21
En relisant ta proposition de code, je me demande s'il n'y a pas anguille sous roche, hum? Y'a un truc qui m'a échappé avec mon TP6. Il m'a juste imposé le cryptage et puis c'est tout.
Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
21
Je précise pour les visiteurs que c'est une source Turbo Pascal. La migration vers Delphi n'est donc pas immédiate.

Quel est l'intérêt d'un crypteur sans décrypteur? Je te pose la question.

Sinon, le codage a l'air d'être basé sur une table de conversion dépendant d'une clé. En effet, si je saisis "toto", il peut être affiché le même texte "+f+f" pour 2 clés différentes. Oh? La méthode bourrine fait alors sauter le cryptage sans pb. Au passage, je n'ai jamais vu de texte précis avec le texte "rotor". Ce peut être lié aux caractères de sortie...

Donc, il serait bon de décrire la méthode de cryptage et de faire un décryptage. A moins que la méthode ne soit pas réversible (par simple réciproque), comme ce qui est le cas avec les Zip, Rar et Doc. Même si le cryptage n'est pas inversable, ça garde toujours un sens. Encore faudrait-il l'exploiter !
Messages postés
314
Date d'inscription
mercredi 1 novembre 2000
Statut
Membre
Dernière intervention
20 août 2006

Je n'y avais même pas penser, mais bon ya plusieurs façon de faire!!! L'essentiel c'est que ça marche!!!
Quelqu'un pourrait me dire ou trouver des algos de cryptage plus évoluer!!!!
Merci !!!!!!!!!
Messages postés
436
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
5 février 2015

tu aurais pu mettre en variable Carre pour son remplissage par exemple :
____________________________________________
var
Carre :array[1..26] of array[1..26] of char;
i,j,n:byte;
........
........
for i:=1 to 26 do
for j:=1 to 26 do
begin
n:=j+i+63; if n>90 then dec(n,26);
Carre[i][j]:=chr(n);
end;
____________________________________________

mais bon je pense qu'il faut respecter ton choix, au moins à l'ouverture, il n'y aura pas une boucle de calcul