Problème Cryptage Vigénère

Résolu
Redman31100 Messages postés 167 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 11 février 2009 - 5 juil. 2008 à 15:04
Redman31100 Messages postés 167 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 11 février 2009 - 6 juil. 2008 à 18:50
Bonjour à tous !

J'ai commencé à faire seulement le code de cryptage Vigénère.

Voici le code :

Public Shared Function Cryptage(ByVal TextClair As String, ByVal Cle As String) As String
        Dim Result As String

        For i As Integer = 0 To TextClair.Length - 1
            If Alphabet.IndexOf(TextClair(i)) <> -1 Then
                Dim Decal As Integer = Alphabet.IndexOf(Cle(i Mod (Cle.Length)))
                Result += Alphabet((Alphabet.IndexOf(TextClair(i)) + Decal) Mod 25)
            End If
            If i Mod 5 = 4 Then
                Result += " "
            End If
        Next

        Return Result
    End Function

J'apelle la fonction avec une clé "EMMA" et un texte "JETAIME" j'obtiens "NQGAM YQ" alors que sur le lien http://www.apprendre-en-ligne.net/crypto/vigenere/index.html
J'obtiens "NQFAM YQ" donc je vois que dans mon programme le G doit être un F pourtant le code que j'ai fait me parait juste. Ensuite l'espace tout les 4 caractères c'est fait exprès !

Merci d'avance de m'aider

Redman

2 réponses

Mikaels35 Messages postés 146 Date d'inscription dimanche 23 janvier 2005 Statut Membre Dernière intervention 17 novembre 2009 2
6 juil. 2008 à 09:06
Salut

Etant donné qu'il y a 26 lettres dans l'alphabet il faut faire "mod 26" au lieu de "25" , cela décalera de -1 toutes les sommes d'index qui dépassent 26 et ton "G" deviendra un "F" !

Dans ton exemple, seul le "T" posait problème !

@+
3
Redman31100 Messages postés 167 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 11 février 2009
6 juil. 2008 à 18:50
Merci beaucoup Mikaels35

Redman
0
Rejoignez-nous