Quasi sicuramente in questa riga
codice:
testo1(i) Xor ch
in decodifica il valore di ch e' diverso da quello che hai usato in codifica.