Linguaggio : nessuno di specifico mi serve solamente il concetto

L'algoritmo che devo replicare fa questo:


----> testo
----> chiave ( generata casualmente , stessa lunghezza del testo)

a b c d e f g h i j k l m n o p q r s t u v w x y z

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Testo

c ---> 3
i ---> 9
a ---> 1
o ---> 15

Chiave

t ---> 20
u ---> 21
j ---> 10
c ---> 3

Testo criptato

c + t = 3 + 20 ---> 23 = w
i + u = 9 + 21 ---> 30 = d
a + j = 1 + 10 ---> 11 = k
o + c = 15 + 3 ---> 18 = r

testo criptato = "wdkr"


Quindi io ho fatto questo:

in un 'array è contenute le lettere

Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z")


avviene questo:

viene immesso il testo
viene generata la chiave

-----------------------------

viene formato il testo criptato

nell'array ci sono 25 elementi ( contando il primo come 0)

avviene però un inconveniente

che talvolta sommando gli elementi si va al di fuori del 25
( esempio: testo = z (pos = 25) chiave = y (pos = 24) risultato ==> y
( pos 49)

quindi io ripercorro , mettiamo che venga 27 ( la z è 25 ) allora il valore è logicamente b e assegno al testo criptato il valore 1


il fatto è che quando si fa Chiave meno Testo criptato ( per tornare al valore in chiaro ) otteniamo un valore diverso per via del cambio di valore effettuato.

esempio:


Testo in chiaro:


c --------> 2
i --------> 8
a --------> 0
o --------> 14

chiave

i --------> 8
u --------> 20
b --------> 1
u --------> 20


Testo criptato

10
28 --------> (28 -26) (si ripercorre l'array) --> 2
1
34 --------> (34 -26) --------------------------> 8



Ma come ora vedrete questo cambio si rivela infelice:

posizione chiave

8
20
1
20

posizione testo_criptato

10
2
1
8

Testo chiaro

8 - 10 => -2 -> c
20 - 2 => 18 -> s
1 - 1 => 0 -> i
20 - 8 => 12 -> m


( il negativo viene trasformato in positivo tanto è uguale)

csim ---> non è ciao (!)

consiglio su come fare ?

se sei arrivato a leggere fino a qua sei 1 eroe -.-