Cifrado XOR
Combina su texto con una clave que se repite mediante XOR y muestra el resultado en hexadecimal: «Hello» con la clave «key» da 230015070a, y la misma clave lo devuelve a texto. Pensado para acertijos, prácticas CTF y clases, no para proteger secretos. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- Hello
- Clave
- key
- Modo de cálculo
- Encrypt
- Resultado
- 230015070a
- Longitud de la clave
- 3
- Octetos
- 5
El cifrado XOR es un cifrado de flujo clásico de clave repetida que combina cada byte de datos con un byte de clave mediante la operación exclusivo-o. Como XOR es su propia inversa, la misma clave que codifica un mensaje también lo restaura al aplicarla de nuevo. Esta capacidad codifica el texto plano como UTF-8, cicla los bytes de la clave sobre la carga y presenta el texto cifrado como hexadecimal compacto en minúsculas para que los resultados binarios se puedan copiar sin riesgo. El modo decrypt acepta ese hex, reaplica el flujo de clave y devuelve texto UTF-8 cuando la clave coincide. La gente usa el XOR de clave repetida para calentamientos de CTF, demostraciones de cifrados de flujo en clase, libros de rompecabezas y ofuscación ligera cuando el cifrado autenticado moderno sería excesivo.
Reglas de validación, claves vacías y errores frecuentes
Las cadenas de mode no válidas fuera de encrypt, decrypt, encode y decode fallan igual. No trate la salida como cifrado para confidencialidad: el XOR de clave repetida es vulnerable a ataques de texto plano conocido, crib dragging y análisis de frecuencias cuando la clave es corta respecto al mensaje, y la página del producto nunca debe promocionar esta herramienta como control de seguridad para contraseñas, tokens o datos personales.
Prefiera esta página cuando la intención de búsqueda sea cifrado xor, XOR de clave repetida o cifrar descifrar XOR en hex; Atbash y ROT13 responden a sustitución fija de alfabeto, la transposición de cercas responde a transposición, Base64 y hex-text responden a codificación sin clave, así que siguen siendo herramientas separadas. Al descifrar, use exactamente la misma cadena de clave que produjo el texto cifrado; una clave incorrecta falla la validación UTF-8 o produce galimatías que no coincidirán con el texto plano original.
Usos en clase y límites prácticos
Llame al cifrado XOR gratuito del navegador para revisar tareas, diapositivas de clases, práctica de CTF y ejecuciones puntuales de cifrado o descifrado sin escribir un bucle de flujo de clave en cada lenguaje. Un flujo de aula típico muestra que una clave de un byte es un flujo simple tipo César sobre bytes, luego alarga la clave y demuestra que la longitud del texto cifrado iguala la del texto plano en bytes mientras el hex duplica el número de caracteres.
Los manuales de soporte pueden revertir notas ligeramente ofuscadas que el personal escribió con una clave compartida conocida. Los sitios de rompecabezas pueden precalcular respuestas hex para mostrarlas y revelarlas bajo demanda con mode decrypt. Combínela con librerías criptográficas modernas solo cuando un paso posterior necesite cifrado autenticado: mantenga XOR en su propia página para que la intención SEO siga centrada en el exclusivo-o clásico de clave repetida.
Qué puede hacer con ella
Calentamientos XOR para CTF y rompecabezas
Oculte banderas o pistas cortas bajo una clave repetida conocida, publique el hex y descifre con la misma clave cuando los participantes necesiten la revelación sin instalar librerías de criptografía.
Preguntas frecuentes
¿Cómo cifro texto con el cifrado XOR?
El campo result de la respuesta contiene el texto cifrado hexadecimal en minúsculas.
¿Cómo descifro un texto cifrado XOR en hex?
Envíe la cadena hex como text, la misma clave usada para cifrar y mode decrypt (o decode). El resultado es el texto plano UTF-8 reconstruido cuando la clave coincide.
¿Qué ocurre si la clave está vacía?
Se requiere una clave no vacía para que el flujo de clave repetida esté bien definido.
¿Es gratuito el cifrado XOR?
La herramienta del navegador se ejecuta gratis en su dispositivo.
¿Es el XOR de clave repetida un cifrado seguro?
No. Es un cifrado clásico didáctico y de rompecabezas, no confidencialidad para secretos. Nunca lo use para contraseñas ni datos sensibles de producción; use cifrado autenticado moderno.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/enc/xor \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello","key":"key"}'const res = await fetch("https://api.kit.forhosting.com/enc/xor", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello",
"key": "key"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/xor",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello",
"key": "key"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/xor", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello","key":"key"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello","key":"key"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/xor", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "Hello",
"key": "key"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.xor",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Introduzca texto no vacío, una clave no vacía y un modo encrypt o decrypt opcional; las claves vacías fallan con invalid_input.
Cómo funciona el XOR de clave repetida y qué contiene la respuesta
El cifrado primero convierte su mensaje a bytes UTF-8 para que los caracteres multibyte se traten igual en cada isolate. La cadena de la clave también se codifica en UTF-8; esos bytes de clave forman un flujo que se repite desde el principio cuando el mensaje es más largo que la clave. Cada byte de datos se combina con la operación XOR con el byte de clave en la posición índice módulo longitud de la clave, produciendo un texto cifrado binario de igual longitud. El descifrado invierte la presentación: el campo text debe ser hexadecimal (se eliminan espacios, dos puntos, guiones o prefijos 0x opcionales), se aplica el mismo flujo de clave y los bytes resultantes se decodifican como texto UTF-8. Los valores de mode aceptables son encrypt, encode, decrypt y decode; encode corresponde a encrypt y decode a decrypt. Envíe JSON con el campo de cadena obligatorio text con el mensaje plano o el texto cifrado hex, el campo de cadena obligatorio key con cualquier frase de contraseña no vacía, y mode opcional que por defecto es encrypt. Los alias input, value, s, message y ciphertext funcionan para el cuerpo; password, secret, k y passphrase son alias de la clave; op, action y direction son alias de mode. En caso de éxito, la respuesta incluye result con la cadena hex o plana, mode normalizado a encrypt o decrypt, key_length igual a la longitud en bytes UTF-8 de la clave, bytes igual al número de bytes de datos procesados, y method igual a xor para que los clientes puedan ramificar sin inspeccionar formas. Entradas idénticas siempre producen JSON idéntico porque la ruta es aritmética pura de bytes, sin red, sin semilla aleatoria y sin reloj.
Reglas de validación, claves vacías y errores frecuentes
La ausencia de text, un text que no sea cadena o una cadena vacía generan invalid_input y no se cobran en la API prepagada después de que el motor rechaza la solicitud. La ausencia de key, una key que no sea cadena o una clave vacía también fallan con invalid_input; la promesa del producto es un flujo de clave repetida real, y cero bytes de clave dejarían los datos sin cambios o indefinidos como cifrado. En modo decrypt, el hex de longitud impar tras quitar separadores, los caracteres no hexadecimales o los bytes descifrados que no son UTF-8 válido también generan invalid_input, de modo que los clientes nunca reciben cadenas corruptas en silencio.
Uso de la API, precios, flujos de aula y límites prácticos
Use la API prepagada KIT cuando un backend, una función serverless, una plataforma de tutorías o un SDK necesite un contrato estable con saldo a $0.002 por elemento exitoso; los fallos de validación nunca consumen saldo tras el rechazo. Los autores que publican SDKs pueden mapear el campo result directamente a un botón de copiar mientras mode, key_length, bytes y method hacen que los ejemplos de OpenAPI sean autoexplicativos. Mantenga las cargas en tamaños de texto ordinarios apropiados para una llamada de elemento en un isolate de Worker; esta herramienta es para mensajes y fragmentos, no para blobs binarios de varios megabytes.
Casos de integración
Demostraciones de cifrado de flujo en el aula
Los docentes muestran que XOR es su propia inversa, contrastan el texto cifrado hex con el texto plano y fijan Hello con la clave key como fixture de libro que los estudiantes pueden recalcular a mano.
Fixtures para pipelines y CI
Los scripts y las pruebas de integración continua fijan salidas hex XOR deterministas y el error de clave vacía para que los fallos accidentales en el flujo de clave o en el formato hex fallen rápido.