Ho creato la seguente funzione da utilizzare in un algoritmo di codifica( la stessa sia per la codifica che per la decodifica)
Private Function codifica(ByVal testo As String, ByVal pass As String)
Dim testo1() As Byte
Dim pass1() As Byte
testo1() = testo
pass1() = pass
For i = 0 To UBound(testo1()) Step 2
If a < UBound(pass1()) / 2 Then a = a + 2 Else a = 0
ch = pass1(a)
testo1(i) = testo1(i) Xor ch
Next
codifica = testo1()
End Function
Il problema che se vado a codificare e poi a decodificare un file alcuni caratteri non vengono decodificati correttamente. Io ho provato con un file che contiene i caratteri con codice ascii ad 1 a 255 e ho notato che gli ultimi 25-30 caratteri non vengono decodificati correttamente. Esempio:
File originale:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ __
Lo codifico con una password(prova) e poi lo decodifico con la stessa password: ecco che cosa ottengo:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~OZ1OMPIOMI7* MYIOMPIOM+I2__ MIOMPIOMPOMIOMI OMPOMPOPI
Gli ultimi caratteri non corrispondono al file originale.
C' qualcuno che mi sa spiegare perch succede questo????
Ringrazio tutti coloro che cercheranno di aiutarmi.
Ciao, Andrea