Cifrado XOR
Escribe un mensaje y una clave: cada byte del mensaje se combina por XOR con el siguiente byte de la clave, que se repite las veces necesarias. Con la misma clave sobre el resultado recuperas el mensaje; el botón de intercambio lo hace por ti.
Funciona en tu navegador: nada de lo que escribes se envía a ningún sitio.
Cómo se usa
- Escribe el mensaje y elige su formato: texto, hex o Base64.
- Escribe la clave como texto o en hex.
- Elige cómo mostrar el resultado. Hex es la opción segura.
- Para deshacerlo, pulsa «Usar el resultado como entrada»: el resultado pasa a la entrada, los formatos se intercambian y con la misma clave ves el original.
Cómo funciona
El mensaje y la clave se convierten en bytes (el texto, en UTF-8). El byte i del resultado es el byte i del mensaje XOR el byte (i mod longitud de la clave) de la clave. Como (m ⊕ k) ⊕ k = m, la misma clave deshace la operación.
Ejemplo
El formulario se abre con Hola y la clave key:
| Byte |
H 48 |
o 6f |
l 6c |
a 61 |
| Clave |
k 6b |
e 65 |
y 79 |
k 6b |
| XOR |
23 |
0a |
15 |
0a |
El resultado es 230a150a en hex e IwoVCg== en Base64; la línea de debajo dice «Bytes procesados: 4». Con Hello y la misma clave sale 230015070a: el 00 aparece donde el mensaje y la clave tienen el mismo carácter (la e), uno de los patrones que delatan una clave repetida.
Consejos
- Si necesitas una clave aleatoria tan larga como el mensaje, usa la herramienta de cifrado de Vernam.
- Las claves en hex admiten cualquier valor de byte, no solo caracteres imprimibles.
- XOR forma parte de cifrados reales (cifrados de flujo, modos de AES) junto con un flujo de clave que nunca se repite; por sí solo apenas oculta los datos a simple vista.
Preguntas frecuentes
¿Cómo funciona el cifrado XOR?
XOR compara dos bits y da 1 cuando son distintos. Al aplicar XOR a un byte con un byte de la clave se invierten los bits donde la clave tiene unos; al repetirlo con la misma clave vuelven a su sitio. Por eso la misma operación cifra y descifra.
¿Es seguro XOR con una clave repetida?
No. Una clave corta que se repite se rompe con facilidad: un trozo de texto conocido, patrones repetidos o una estadística sencilla la delatan. XOR solo es irrompible como libreta de un solo uso, con una clave realmente aleatoria, tan larga como el mensaje y que nunca se reutiliza.
¿Por qué el resultado sale en hex por defecto?
XOR suele producir bytes que no son caracteres imprimibles ni UTF-8 válido. Hex y Base64 muestran cualquier byte sin problemas. La salida como texto sirve cuando el resultado es texto válido, por ejemplo al descifrar.
¿Cómo descifro?
Pon el hex o Base64 cifrado en la entrada, elige ese formato, escribe la misma clave y elige salida como texto. El botón de intercambio pasa el resultado a la entrada y cambia los formatos con un solo clic.
¿El texto se toma como ASCII o UTF-8?
Como UTF-8. Los caracteres ASCII ocupan un byte; las vocales con tilde y la ñ ocupan dos, y los emoji cuatro. Cada byte se combina por separado.