CHIFFREMENT DE VIGENERE (CARRÉ)

DRJEROME Messages postés 436 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 5 février 2015 - 27 nov. 2004 à 11:56
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 - 3 déc. 2004 à 18:47
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

cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
3 déc. 2004 à 18:47
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.
DRJEROME Messages postés 436 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 5 février 2015
1 déc. 2004 à 22:23
Hi,hi... sory ;)
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
1 déc. 2004 à 16:40
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.
DRJEROME Messages postés 436 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 5 février 2015
29 nov. 2004 à 16:41
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
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
28 nov. 2004 à 20:40
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.
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
28 nov. 2004 à 20:36
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 !
RM50Man Messages postés 314 Date d'inscription mercredi 1 novembre 2000 Statut Membre Dernière intervention 20 août 2006
27 nov. 2004 à 15:17
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 !!!!!!!!!
DRJEROME Messages postés 436 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 5 février 2015
27 nov. 2004 à 11:56
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
Rejoignez-nous