Codificador y decodificador del cifrado Vigenère
Cifra «Attack at dawn» con la clave LEMON en «Lxfopv ef rnhr» y lo descifra con la misma clave. Cada letra recibe su propio desplazamiento César según la clave que se repite, se respetan mayúsculas y minúsculas, y los espacios y signos quedan en su sitio. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- Attack at dawn
- Clave
- LEMON
- Modo de cálculo
- encrypt
- Resultado
- Lxfopv ef rnhr
- Codificación
- vigenere
- Letras de la clave
- LEMON
- Longitud de la clave
- 5
Esta herramienta de cifrado Vigenère cifra o descifra texto con la sustitución polialfabética clásica que usa una palabra clave repetida para elegir un desplazamiento César distinto para cada letra. A diferencia de un único desplazamiento César fijo, el flujo de clave recorre la palabra clave, así que la misma letra de texto plano puede relacionarse con letras de texto cifrado distintas según la posición, lo cual es la fortaleza histórica del método para demostraciones de aula y diseño de acertijos. Solo se mueven los caracteres alfabéticos: cada letra A–Z se desplaza según la letra de clave correspondiente con aritmética modular en un anillo de veintiséis letras, se conservan las mayúsculas y minúsculas, y los espacios, dígitos, puntuación, y otros símbolos pasan sin consumir un paso de clave. Una comprobación estándar es Attack at dawn con la clave LEMON, que cifra en un texto cifrado conocido y descifra de vuelta bajo la misma palabra clave.
Qué es el cifrado Vigenère y qué devuelve esta herramienta
El cifrado Vigenère es una sustitución polialfabética sobre el alfabeto latino de veintiséis letras. Usted proporciona una palabra clave cuyas letras definen cada una un desplazamiento César, de cero para A a veinticinco para Z. Las letras del texto plano se transforman en orden: la primera letra usa la primera letra de la clave, la segunda usa la siguiente, y cuando la palabra clave termina, el flujo vuelve a empezar desde el principio.
El cifrado suma el desplazamiento de la clave módulo veintiséis; el descifrado lo resta con el mismo ciclo modular, así que las dos operaciones son inversas exactas cuando se usa la misma palabra clave. Los caracteres que no son letras nunca cambian ni avanzan el índice de clave, lo que mantiene legibles el espaciado de la frase y la puntuación alrededor de las letras revueltas.
Esta página siempre usa esa regla de libro de texto, con conservación de mayúsculas y minúsculas, y sin tablas de alfabeto opcionales que puedan variar entre idiomas.
Vigenère en clases, acertijos y comprobaciones
Los desarrolladores y educadores se encuentran con el cifrado Vigenère en calentamientos de captura la bandera, capítulos de libros de texto sobre criptología clásica, y demostraciones ligeras que muestran por qué las palabras clave repetidas terminan filtrando estructura bajo el examen de Kasiski. Los equipos de frontend pueden mezclar frases de ejemplo para capturas de pantalla sin inventar un alfabeto personalizado, y luego recuperarlas descifrando con la misma clave.
Los ingenieros de calidad generan pares de cifrado y descifrado deterministas para pruebas de contrato, de modo que un middleware que dice admitir Vigenère no pueda cambiar en silencio a un único desplazamiento César. Los organizadores de concursos precalculan claves de respuesta para frases modestas en inglés, sin depender de juguetes web opacos que cambian las reglas de espaciado o fuerzan una salida solo en mayúsculas.
Las herramientas de producto y educación usan la transformación cuando un estudiante pega un texto cifrado y la interfaz debe mostrar el texto plano recuperado bajo la palabra clave documentada. Combínela con otros ayudantes de codificación clásica cuando esté construyendo un pequeño laboratorio de herramientas de texto gratuitas y deterministas, y nunca trate Vigenère como sustituto del cifrado moderno autenticado.
Qué puede hacer con ella
Práctica de CTF y cifrado clásico
Cifre y descifre frases polialfabéticas basadas en palabra clave para acertijos, aulas, y calentamientos de captura la bandera.
Lecciones de historia de la criptografía
Demuestre la sustitución de clave repetida, las transformaciones que conservan mayúsculas y minúsculas, y por qué los caracteres no alfabéticos no deben avanzar el flujo de clave.
Preguntas frecuentes
¿Cuánto cuesta la herramienta de cifrado Vigenère?
Es gratis en su navegador, en esta página.
¿Cómo descifro un mensaje Vigenère?
Envíe el texto cifrado como text, la misma palabra clave como key, y establezca mode en decrypt (o dec, decode, d). El cifrado es la opción por defecto cuando se omite mode.
¿Qué ocurre si la clave no tiene letras?
La palabra clave debe contener al menos una letra A–Z; los dígitos o símbolos puros se rechazan.
¿Qué caracteres se desplazan?
Solo las letras alfabéticas A–Z en cualquier mayúscula o minúscula. Los espacios, dígitos, puntuación, y otros símbolos pasan sin cambios y no avanzan la clave.
¿Es seguro Vigenère para secretos reales?
No. Es un cifrado didáctico clásico. Use cifrado moderno autenticado, como AES-GCM, para confidencialidad real.
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/vigenere \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Attack at dawn","key":"LEMON"}'const res = await fetch("https://api.kit.forhosting.com/enc/vigenere", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Attack at dawn",
"key": "LEMON"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/vigenere",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Attack at dawn",
"key": "LEMON"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/vigenere", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Attack at dawn","key":"LEMON"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Attack at dawn","key":"LEMON"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/vigenere", 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": "Attack at dawn",
"key": "LEMON"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.vigenere",
"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
Utilícela gratis en el navegador para calentamientos de CTF, lecciones de historia de la criptografía, y hojas de ejercicios de acertijos reversibles, o llame a la API por $0.002 por solicitud exitosa cuando las canalizaciones necesiten transformaciones Vigenère reproducibles en integración continua y servicios de backend.
Qué es el cifrado Vigenère y qué devuelve esta herramienta
La respuesta en JSON incluye result para la cadena transformada, encoding fijo en vigenere, mode establecido en encrypt o decrypt, key_letters mostrando el flujo normalizado de letras en mayúsculas extraído de su palabra clave, key_length, input_length y output_length que coinciden porque la transformación preserva la longitud, shifted_chars contando cuántas letras realmente se movieron, y una cadena formula que reafirma la relación modular para documentación y pruebas. No hay ruta en streaming ni una alternativa silenciosa a ROT13 o a un César fijo: o usted proporciona texto no vacío y una palabra clave con al menos una letra, o la solicitud falla con invalid_input. Si necesita AES, ROT47, Base64, o Morse, use esos endpoints específicos; esta página responde únicamente el contrato clásico de palabra clave Vigenère que ya describen los capítulos de historia de la criptografía y los calentamientos de CTF.
Cómo se interpretan el texto, la clave y el modo, y cómo los resultados se mantienen reproducibles
Los campos de carga preferidos son text para el mensaje, key para la palabra clave, y mode opcional para encrypt o decrypt. Cada letra se procesa con el mapa modular fijo, y el índice de clave avanza solo en las letras, así que cifrar y luego descifrar con la misma palabra clave siempre restaura la carga útil original. Text acepta alias como input, value, s, message, plaintext y ciphertext, para que formularios y clientes de SDK puedan reutilizar nombres de columna existentes. Key acepta keyword, k, password y passphrase; solo se conservan los caracteres alfabéticos dentro de la clave, y se convierten a mayúsculas en key_letters, mientras que los dígitos y símbolos en la clave se ignoran. Si tras ese filtro no queda ninguna letra, el motor rechaza la solicitud con invalid_input y un mensaje claro de que la palabra clave debe contener al menos una letra A–Z. Mode toma encrypt por defecto cuando se omite, y también acepta alias cortos como enc, encode, e para encrypt, y dec, decode, d para decrypt; cualquier otra cadena falla la validación. El texto ausente, el texto vacío, los tipos que no son cadena, y los modos desconocidos elevan todos invalid_input, para que un formulario en blanco no parezca una operación exitosa sin efecto. Combine la ejecución gratuita en el navegador de esta página con la API de pago cuando necesite el mismo resultado matemático dentro de un flujo automatizado, sin tener que reimplementar usted mismo el flujo polialfabético. Las entradas inválidas devuelven invalid_input y no se cobran, lo que mantiene la validación barata mientras las transformaciones exitosas siguen teniendo un precio fijo por elemento.
Dónde encaja Vigenère en lecciones, acertijos y fixtures de prueba
Los servicios de backend codifican cadenas de desafío cortas para API de acertijos o entornos de enseñanza donde los estudiantes deben aplicar la palabra clave correcta para desbloquear el siguiente paso. En esta página el trabajo se ejecuta enteramente en su navegador; a través de la API, cada consulta exitosa cuesta $0.002, la validación fallida no se cobra, y no se almacena nada después de que se devuelve la respuesta. Esa división —exploración interactiva gratuita y una API de pago idéntica— coincide con el resto del catálogo tier A del KIT y le permite pasar de una demostración de aula a un flujo automatizado sin cambiar el resultado transformado.
Casos de integración
Fixtures deterministas de integración continua
Genere pares reproducibles de texto cifrado y texto plano Vigenère para pruebas unitarias, ficheros golden, y comprobaciones de contrato.