Basique c'est le mots! Ce n'est pas un algorithme ultra compliqué pour vous donner un mal de tête, en fait, c'est très simple. Et nous allons utiliser l'opérateur XOR.
Pour ceux qui ne sont pas familier avec XOR, Je vais vous donner une petite leçon. XOR c'est supposé vouloir dire "exclusive OR". Voici une illustration pour mieux vous faire comprendre!
True Xor True = False
True Xor False = True
False Xor True = True
False Xor False = False
Vous voyez? maintenant, les opérations logiques de Xor (ci-dessus) sont moins importante pour nous que les opérations binaire ci-dessous :
1 Xor 1 = 0
1 Xor 0 = 1
0 Xor 1 = 1
0 Xor 0 = 0
C'est pas mal la même chose comme opérations logique, mais regardez, nous pouvons appliquer ça sur un paquet de Byte en même temps:
11111111
XOR
01010101 (Key)
Résultat:
10101010
Voci maintenant la magie.. Si nous utilisons encore XOR , en utlisant la valeur où c'est écrit "KEY" et le résultat, nous obtenons l'originale!
10101010 (vieux résultat)
XOR
01010101 (Key)
Résultat:
11111111 (!!!)
Ça fonctionne dans tous les cas, quand la KEY est constante: faite XOR pour la premiere fois, vous avez un résultant encodé . Faite XOR encore (avec la même KEY), et vous optenez la valeur du départ. Ça semble cool n'es-ce pas ? mais comment on applique ça concraitement? Lorsque vous stoker de l'information en binaire dans un fichier quelconque, c'est une simple façon de faire XOR sur chaque byte qui sont lu ou écrit pour le coder et decoder. Pour coder de l'information sous d'autre circonstance ça peut être un peu compliqué. Vous avez besoin de forcer cette information en Byte, et de le refaire après. Ici, nous allons le faire avec des chaînes de caractères (string):
Dim strResult As String
Dim strChar1 As String * 1
Dim strChar2 As String * 1
strChar1 = "E"
strChar2 = "z"
strResult = Chr(Asc(strChar1) Xor Asc(strChar2))
Ce code va faire XOR "E" avec "z" en les convertissant en leurs valeurs ASCII! Une fois convertie en ASCII, Ils peuvent être traités comme des bytes ou comme de l'information où l'on a déjà fait XOR. Nous pouvons les reconvertir en chaines de caractere en utilisant la fonction Chr. Cette méthode peut être adapté en utilisant une boucle (FOR...NEXT) pour encoder du texte plus complexe. Clicker ICI pour télécharcher le code source et avoir un exemple d'encodage de chaine de caractere.