CRYPTÉ/DÉCRYPTER UN TEXTE SELON UN CLÉ

NHenry Messages postés 15143 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 17 juillet 2024 - 2 mars 2011 à 19:24
NHenry Messages postés 15143 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 17 juillet 2024 - 14 juin 2015 à 14:48
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/52881-crypte-decrypter-un-texte-selon-un-cle

NHenry Messages postés 15143 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 17 juillet 2024 159
14 juin 2015 à 14:48
Quels fichiers ?
La source manque des fichiers.
Merci de mètre votre code complet sans quoi elle ne sert à rien.
Cordialment
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
4 mars 2011 à 05:09
@Translation avec le carré de Vigenère.vb : AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH

Si tu regardes bien il existe une relation entre les deux lettres et la lettre qu'ils forment, qui peut s'exprimer par une formule si tu convertis tes caractères en nombres. Ceci se fait par la fonction Convert.ToChar (comme l'a souligné NHenry), tu peux alors appliquer la formule (que tu peux trouver toi-même avec un peu d'analyse, convertis en nombre et regarde ensuite le pattern). Une fois que c'est fait, tu peux reconvertir les nombres en caractères avec une autre fonction (à toi de trouver). Courage !

Cordialement, Bacterius !
Jeromedu79 Messages postés 119 Date d'inscription dimanche 9 janvier 2011 Statut Membre Dernière intervention 23 décembre 2012 1
3 mars 2011 à 10:11
Bonjour,

Déjà merci d'avoir pris le temps de regarder ma source :)

Pour :

While 1
If Key.Length > LongeurClair Then
Exit While
Else
NewKey = NewKey + Key
LongeurClair = LongeurClair - Key.Length
End If
End While
NewKey = NewKey + Key.Substring(0, LongeurClair)

c'est juste que j'avais oublier de le remplacer, mais ne t inquiète pas, tu as déjà résolu ce problème (sur le forum l'autre jour) et je t'en remercie encore une fois.

Pour la fonction crypté, je les mis en commentaire, je me suis pas trop penchez sur la question de comment le simplifier.

Il n'y a pas d'autre moyen de le faire sans le select case ?
car à ma façons, on arrive à 4 000 lignes ...

Merci
NHenry Messages postés 15143 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 17 juillet 2024 159
2 mars 2011 à 19:24
Bonjour,

Déjà parlons du code (je n'ai pas testé l'exécution) :
mais :
While 1
If Key.Length > LongeurClair Then
Exit While
Else
NewKey = NewKey + Key
LongeurClair = LongeurClair - Key.Length
End If
End While
NewKey = NewKey + Key.Substring(0, LongeurClair)

Sera avantageusement remplacé par :
While NewKey.Length< Clair.Length
NewKey = NewKey + Key
End While
NewKey = NewKey.Substring(0, Clair.Length)

Ensuite, j'ai été effrayé par la fonction Crypter de la classe ...
Pour récupérer le caractère à partir du code ASCII
Convert.ToChar(65)
Pour l'autre sens, je te laisse chercher.

Bonne soirée :)
Rejoignez-nous