Cifrado VIC
Cifra ATTACK AT DAWN con la clave de tablero COMPUTERS, los nulos 37 y las claves ORANGE y BLUE en 61363 17174 31939 70373 3916, y lo descifra de vuelta. Combina el tablero a caballo con dos transposiciones encadenadas, como el clásico cifrado manual. 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 del tablero
- COMPUTERS
- Nulos
- 37
- Key
- ORANGE
- Key2
- BLUE
- Modo de cálculo
- Encrypt
- Resultado
- 61363 17174 31939 70373 3916
- Longitud
- 28
- Símbolos asignados
- 14
- Flujo de dígitos
- 316631039793167933317471
El cifrado VIC es un sistema manual clásico conocido por el trabajo de campo de mediados del siglo XX: combina un tablero a caballo (straddling checkerboard), que asigna letras a un flujo mixto de uno y dos dígitos, con dos transposiciones columnares encadenadas que reordenan ese flujo antes de escribirlo en grupos de cinco dígitos. Esta página ofrece un perfil educativo claro de ese pipeline para que estudiantes, jugadores de CTF y autores de material didáctico cifren y descifren con claves compartidas sin inventar scripts ad hoc. Usted proporciona el texto en claro o el criptograma de dígitos, una palabra clave del tablero, dos dígitos nulos distintos para las casillas en blanco y dos palabras clave de transposición no vacías, y elige cifrar o descifrar.
Cómo funcionan el tablero a caballo y las transposiciones encadenadas
Comience con una palabra clave del tablero. Las letras latinas únicas de esa palabra se escriben primero en un orden de relleno de veintiocho celdas, luego el resto del alfabeto y después el punto y la barra, de modo que espacios y finales de frase tengan códigos explícitos.
Dos dígitos nulos distintos marcan columnas en blanco en la fila superior de un tablero de diez columnas; esas ocho celdas superiores rellenas se convierten en códigos de un dígito, mientras que los dos nulos etiquetan las filas del cuerpo que alojan los veinte símbolos restantes como códigos de dos dígitos. El cifrado recorre el texto normalizado una vez: las letras pasan a mayúsculas, los espacios se convierten en barra, los puntos se mantienen y el resto se omite.
Cada símbolo se sustituye por su código de uno o dos dígitos y los códigos se concatenan en un flujo continuo de dígitos. Ese flujo se escribe en una rejilla cuyo ancho es la longitud de la primera palabra de transposición; las columnas se leen en orden Unicode de los caracteres de la clave, con empates estables de izquierda a derecha. La cadena intermedia se transpone de nuevo con la segunda palabra bajo la misma regla.
El flujo final se emite en grupos clásicos de cinco dígitos separados por espacios para copiarlo a mano con facilidad. Al descifrar se eliminan los no dígitos, se deshace la segunda transposición, luego la primera, y se decodifican de forma codiciosa primero los códigos de un dígito y después los de dos en el mismo tablero. La ruta no usa red, Date ni aleatoriedad.
Esta página implementa solo VIC educativo con doble cadena columnar, no el esquema histórico completo de número personal, ni variantes de columna interrumpida, ni recuperación automática de claves desconocidas.
Dónde aparecen las herramientas VIC en el trabajo real
Los cursos introductorios de criptografía e historia de la inteligencia asignan ejercicios al estilo VIC para que el alumnado practique combinar una tabla de sustitución a caballo con transposiciones secuenciales antes de conocer cifrados modernos de flujo y de bloque; un oráculo fiable que cifra y descifra con reglas documentadas de tablero y clave acelera demos de deberes y autoevaluadores.
Los calentamientos de capture-the-flag y las búsquedas de enigmas siguen ocultando flujos en grupos de cinco dígitos que solo se revierten cuando se conocen la palabra del tablero, el par de nulos y ambas claves de transposición, y quien resuelve prefiere una herramienta rápida y predecible a un suite general de criptoanálisis. Equipos de soporte y contenidos a veces codifican de forma ligera spoilers o etiquetas internas como grupos de dígitos y necesitan la ruta inversa sin instalar una biblioteca criptográfica específica del lenguaje.
Si necesita solo transposición columnar sin tablero, doble columnar aislada, Nihilist Polybius-plus-add, fraccionamiento Bifid o recuperación automática por análisis de frecuencias de claves desconocidas, trátelos como intenciones de búsqueda y landings distintas, no sobrecargando esta página educativa del cifrado VIC.
Qué puede hacer con ella
Demos de aula VIC y de oficio de campo
Cifre y descifre mensajes de ejemplo con palabra del tablero, dígitos nulos y dos claves de transposición para que las clases de cripto e historia compartan un pipeline VIC de referencia.
Retos de puzzles y CTF con flujos de dígitos
Codifique o invierta flujos VIC en grupos de cinco dígitos en cadenas de reto sin escribir un script aparte para cada colección de problemas.
Preguntas frecuentes
¿Qué es el cifrado VIC en esta página?
Un perfil educativo de cifrado manual: un tablero a caballo asigna letras a códigos mixtos de uno y dos dígitos, y dos transposiciones columnares encadenadas reordenan el flujo de dígitos. El criptograma se muestra en grupos de cinco dígitos.
¿Cómo descifro un flujo de dígitos?
La herramienta deshace key2, luego key, y decodifica el tablero de forma codiciosa.
¿Cuánto cuesta?
La herramienta del navegador es gratuita y se ejecuta en local.
¿Para qué sirven los dos dígitos nulos?
Marcan las dos casillas vacías de la fila superior del tablero de diez columnas. Las ocho casillas llenas dan códigos de un dígito y los nulos encabezan las filas con los otros veinte símbolos, de dos dígitos. Deben ser distintos, como 37.
¿Qué caracteres se conservan al cifrar?
Las letras latinas de la A a la Z, en mayúscula o minúscula, y el punto. Los espacios pasan a ser una barra en el tablero, así que las palabras reaparecen al descifrar; los dígitos, las letras con tilde y otros signos se omiten.
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/vic-cipher \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"ATTACK AT DAWN","board_key":"COMPUTERS","nulls":"37","key":"ORANGE","key2":"BLUE"}'const res = await fetch("https://api.kit.forhosting.com/enc/vic-cipher", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "ATTACK AT DAWN",
"board_key": "COMPUTERS",
"nulls": "37",
"key": "ORANGE",
"key2": "BLUE"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/vic-cipher",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "ATTACK AT DAWN",
"board_key": "COMPUTERS",
"nulls": "37",
"key": "ORANGE",
"key2": "BLUE"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/vic-cipher", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"ATTACK AT DAWN","board_key":"COMPUTERS","nulls":"37","key":"ORANGE","key2":"BLUE"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"ATTACK AT DAWN","board_key":"COMPUTERS","nulls":"37","key":"ORANGE","key2":"BLUE"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/vic-cipher", 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",
"board_key": "COMPUTERS",
"nulls": "37",
"key": "ORANGE",
"key2": "BLUE"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.vic_cipher",
"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
Las claves vacías, las palabras del tablero sin letras y los nulos idénticos fallan de inmediato con invalid_input, de modo que un secreto en blanco nunca se trata como un no-op silencioso.
Cómo funcionan el tablero a caballo y las transposiciones encadenadas
No hay relleno moderno, etiqueta de autenticidad ni nonce aleatorio: el mismo texto, clave de tablero, nulos, claves y modo producen siempre el mismo JSON.
Qué envía usted y qué recibe a cambio
Envíe un campo de cadena obligatorio llamado text, un board_key obligatorio para el tablero a caballo, un nulls obligatorio con dos dígitos distintos como treinta y siete, un key obligatorio para el primer paso columnar, un key2 obligatorio para el segundo, y un mode opcional en encrypt o decrypt. Si omite mode, encrypt es el valor por defecto y un payload mínimo sigue siendo útil. En caso de éxito la respuesta repite mode, text, board_key, nulls, key y key2; devuelve result como dígitos del criptograma agrupados o texto recuperado con espacios restaurados desde la barra; length de ese resultado; symbols_mapped con cuántos símbolos del tablero se codificaron o decodificaron; digit_stream y las cadenas intermedias after_first_transposition y after_second_transposition; column_order_1 y column_order_2; checkerboard_row0 a checkerboard_row2 compactas más single_digits; y cipher en vic con una fórmula breve. Campos ausentes, text vacío, board_key vacío o sin letras, key o key2 vacíos, nulls que no sean dos dígitos distintos, valores de mode no admitidos, cadenas más largas que el máximo documentado, payloads de descifrado sin dígitos y flujos que no revierten a códigos válidos del tablero fallan con invalid_input y un mensaje claro en inglés. Los fallos de validación no consumen saldo prepago. Comprobaciones clásicas: cifrar ATTACK AT DAWN con board_key COMPUTERS, nulls treinta y siete, key ORANGE y key2 BLUE en un flujo de grupos de cinco, descifrar ese flujo de nuevo a ATTACK AT DAWN, y confirmar que una key vacía se rechaza en lugar de tratarse como una transposición de anchura cero. El precio de las llamadas API correctas es la base publicada de $0.002 por ítem.
Dónde aparecen las herramientas VIC en el trabajo real
Como esta capacidad es un motor parse puro, el precio de la API es la base publicada de $0.002 por ítem correcto y la validación fallida no consume saldo.
Casos de integración
Fijaciones golden para cifrados multi-etapa
Genere vectores estables de tablero más doble transposición para evaluadores, cuadernos y pruebas de regresión en el navegador o por API.
Preguntas técnicas
¿Qué son board_key, nulls, key y key2?
board_key rellena el orden alfabético del tablero. nulls son dos dígitos distintos para las columnas superiores en blanco y las etiquetas de filas del cuerpo. key y key2 son la primera y la segunda palabra de transposición columnar, en ese orden al cifrar y al revés al descifrar.
¿Por qué falla una clave vacía?
board_key debe contener letras latinas, nulls deben ser dos dígitos distintos, y key y key2 no pueden estar vacíos. Secretos vacíos o inválidos devuelven invalid_input para que un secreto en blanco no se trate nunca como operación válida.