CRYPTAGE PAR MASQUE JETABLE

The Meteorologist Messages postés 232 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 3 novembre 2011 - 27 juin 2009 à 16:10
marthieu Messages postés 1 Date d'inscription dimanche 14 août 2005 Statut Membre Dernière intervention 27 juin 2009 - 27 juin 2009 à 20:00
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/50227-cryptage-par-masque-jetable

marthieu Messages postés 1 Date d'inscription dimanche 14 août 2005 Statut Membre Dernière intervention 27 juin 2009
27 juin 2009 à 20:00
Euhmm, ouais j'avais vraiment pas penser a ça. Et pour avoir le code ASCII j'ai decouvert la fonction il y a quelque heure.

Merci
The Meteorologist Messages postés 232 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 3 novembre 2011 1
27 juin 2009 à 16:25
Voilà comment tu pourrais faire par exemple :

Dim s1 As String = "Bonjour"
Dim s2 As String = "1d2d3q4"

If s1.Length = s2.Length Then
Dim sb As New System.Text.StringBuilder(s1.Length)
For i As Integer = 0 To s1.Length - 1
sb.Append(Convert.ToChar(Convert.ToInt32(s1.Chars(i)) Xor Convert.ToInt32(s2.Chars(i))))
Next

' Résultat : sb.ToString.
' N.B. Il vaut mieux utiliser un tableau d'octets car si la chaîne contient la caractère 0, elle sera tronquée.
End If

++
Simon
The Meteorologist Messages postés 232 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 3 novembre 2011 1
27 juin 2009 à 16:10
Salut marthieu, tu t'y prends très très mal ... D'abord parce que ta fonction ToNumber() est absolument abominable. Je pense que tu comprendras pourquoi ... 256 ElseIf ce c'est pas très joli, surtout que tu peux remplacer tout UNE SEULE LIGNE en récupérant l'index sur la table ASCII du caractère. Mais en plus en binaire pour "combiner" deux octets, pas la peine d'additionner leur valeur numérique et de moduler, un simple XOR suffit. En gros tu peux réduire ton programme à 15 lignes à peines =/, du moins pour la partie codage/décodage.
Rejoignez-nous