Se fai un XOR su una stringa, il risultato che avrai non sarà più stringa, ma una serie di byte, infatti (ad esempio) se hai una lettera A e fai un xor con la lettera B ottieni un 1, che non è un valore stampabile, quindi non puoi utilizzare stringhe.
Devi prima convertire la stringa in un array di byte, convertire anche la chiave di crittografazione in un array di byte, e poi fare l'xor, ottenendo così un array di byte come risultato.

Per fare l'operazione inversa è comunque semplice, dopo aver rifatto l'xor, trasformi l'array di byte in stringa e ti ritrovi con la tua stringa decrittografata.

Sergio