Buenas,
Esto consiste en el cifrado de texto de clave simétrica, basado en la función XOR (mensaje ^ clave). El proceso de cifrado de una cadena de texto consiste en los siguientes pasos:
Serialización de la cadena: para obtener una secuencia de bytes a partir de la cadena de texto.
<pre><code>public static byte[] serializa(String texto) {
return texto.getBytes();
}</code>
Cifrado de la secuencia de bytes, donde cada byte cifrado se obtiene de hacer un XOR entre el byte sin cifrar y la clave.
<pre><code>public static void cifra(byte mensaje[], byte clave[]) {
for (int i=0,j=0; i<mensaje.length; i++, j++)
{
if (i == clave.length) //si la clave es mas corta que el mensaje
j = 0;
mensaje[i]= (byte) (mensaje[i] ^ clave[j]);
}
}</code>
El proceso para realizar el descifrado es el inverso:
Descifrado de la secuencia de bytes. Esta operación es equivalente a realizar un nuevo cifrado XOR con la misma clave ([b XOR c] XOR c = b).
Deserialización de la cadena: se obtiene una cadena de texto a partir de la secuencia de bytes descifrada.
<pre><code>public static String deserializa(byte[] mensaje) {
return new String(mensaje);
}</code>
Espero que eso te ayude,