Cifrado ADFGVX
Cifre o descifre con el cifrado de campo alemán de seis por seis que admite letras y cifras: ATTACKAT1200, con la clave de cuadrado PRIVACY y la de transposición GERMAN, se convierte en GFVVVVVVAAAVGXGFGFGFGAGV. Con las mismas dos claves se recupera. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- ATTACKAT1200
- Clave del cuadrado
- PRIVACY
- Key
- GERMAN
- Modo de cálculo
- Encrypt
- Resultado
- GFVVVVVVAAAVGXGFGFGFGAGV
- Entrada
- ATTACKAT1200
- Cuadrícula de clave utilizada
- PRIVACY
- Normalizado
- ATTACKAT1200
El cifrado ADFGVX es el cifrado de campo alemán de seis por seis que fraccionaba mensajes mediante un cuadrado tipo Polibio con clave y luego reordenaba el flujo de etiquetas con una segunda palabra de transposición. A diferencia de una simple sustitución o de una transposición columnar pura, ADFGVX combina ambas etapas de modo que cada letra o dígito del texto en claro se convierte en un par de etiquetas del conjunto A, D, F, G, V y X antes de escribirlas en una rejilla y leerlas en el orden de la clave. Esta capacidad acepta una palabra clave del cuadrado, una clave de transposición, el texto a proteger o recuperar y un modo de cifrar o descifrar.
Cómo funcionan el cuadrado 6×6 y el fraccionamiento
ADFGVX comienza convirtiendo la palabra clave del cuadrado en una matriz de seis por seis sobre los treinta y seis símbolos formados por las letras latinas de la A a la Z y los dígitos decimales del cero al nueve. Las letras y dígitos de la palabra clave del cuadrado se escriben de izquierda a derecha y de arriba abajo, omitiendo duplicados y pasando las letras a mayúsculas; los símbolos restantes del alfabeto y del conjunto de dígitos rellenan el resto de la rejilla en orden natural.
Las filas y columnas se etiquetan con las seis letras amigables con Morse A, D, F, G, V y X en lugar de los dígitos del uno al seis. Al cifrar, el texto en claro se reduce solo a alfanuméricos en mayúsculas y cada símbolo se sustituye por las dos etiquetas de su celda —etiqueta de fila primero, luego de columna—, produciendo un flujo continuo el doble de largo que el mensaje normalizado. Ese flujo fraccionado es la entrada de la segunda etapa.
Al descifrar, tras invertir la transposición, cada par consecutivo de etiquetas ADFGVX se busca en el mismo cuadrado para recuperar una letra o un dígito.
Consejos prácticos, límites y búsquedas relacionadas
Elija una palabra clave del cuadrado con varias letras distintas y dígitos opcionales para que la matriz no sea casi alfabética; las palabras cortas y memorables siguen valiendo para demostraciones, pero frases más largas con símbolos únicos mezclan mejor el cuadrado. Elija una clave de transposición con letras variadas para que el orden de columnas no sea la identidad de izquierda a derecha; se permiten letras repetidas y desempatan por posición.
Recuerde que espacios, puntuación y demás no alfanuméricos se eliminan antes del cifrado, de modo que los números de teléfono conservan sus dígitos pero pierden separadores, y las etiquetas mixtas pierden puntuación en el flujo de símbolos —segméntelos o codifíquelos aparte si los necesita después—. Para descifrar, proporcione un flujo de criptograma solo ADFGVX de longitud par tras la normalización; si una hoja impresa aún tiene espacios, el solucionador ignora los caracteres que no son etiquetas.
Las comprobaciones de ida y vuelta son la mejor prueba de cordura: cifre una frase que incluya dígitos, descifre el resultado con las mismas dos claves y compare con el texto alfanumérico normalizado. Esta página se dirige a quien busca un cifrado ADFGVX, un cifrador ADFGVX o una herramienta de transposición fraccionante de seis por seis en línea; no es AES, no es una caja fuerte moderna de contraseñas, no es Playfair, no es Polibio simple y no es solo transposición columnar.
Prefiera esta capacidad cuando necesite criptografía clásica ADFGVX transparente para educación o puzles; si necesita secreto real, use un cifrado autenticado moderno.
Qué puede hacer con ella
Write-ups de CTF y puzles
Los autores de retos verifican los pasos de cifrado y descifrado ADFGVX con claves de cuadrado y transposición publicadas sin mantener un script offline aparte.
Demostraciones de cripto histórica
Museos y demos de blog muestran cómo los cifrados fraccionantes de la Primera Guerra Mundial difieren de la sustitución monoalfabética cifrando en vivo frases de visitantes con horas o números de unidad.
Preguntas frecuentes
¿Qué es el cifrado ADFGVX?
Un cifrado de campo alemán clásico: cada letra o dígito se mapea a un par de etiquetas A/D/F/G/V/X mediante un cuadrado 6×6 de clave; luego el flujo de etiquetas se reordena con una clave de transposición columnar.
¿Por qué seis etiquetas A, D, F, G, V, X?
Esas seis letras tienen patrones de código Morse distintos, lo que redujo errores de transmisión en campo cuando los operadores enviaban el criptograma fraccionado por telegrafía inalámbrica.
¿Qué ocurre si falta una clave o está vacía?
Tanto la palabra del cuadrado como la de transposición son obligatorias y no vacías (la del cuadrado necesita al menos un carácter A–Z o 0–9).
¿ADFGVX admite dígitos?
Sí. El cuadrado 6×6 aloja veintiséis letras y diez dígitos, de modo que mensajes como ATTACKAT1200 se pueden cifrar sin eliminar los dígitos de la hora.
¿El cifrado ADFGVX es gratis?
La herramienta del navegador es gratuita y se ejecuta en local.
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/adfgvx \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"ATTACKAT1200","square_key":"PRIVACY","key":"GERMAN"}'const res = await fetch("https://api.kit.forhosting.com/enc/adfgvx", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "ATTACKAT1200",
"square_key": "PRIVACY",
"key": "GERMAN"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/adfgvx",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "ATTACKAT1200",
"square_key": "PRIVACY",
"key": "GERMAN"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/adfgvx", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"ATTACKAT1200","square_key":"PRIVACY","key":"GERMAN"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"ATTACKAT1200","square_key":"PRIVACY","key":"GERMAN"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/adfgvx", 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": "ATTACKAT1200",
"square_key": "PRIVACY",
"key": "GERMAN"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.adfgvx",
"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
Informa de claves ausentes o vacías con un error invalid_input claro para que un formulario en blanco nunca produzca en silencio una transformación identidad sin sentido. El camino es aritmética de letras determinista y pura —sin red, sin semillas aleatorias, sin dependencia del reloj— de modo que el ejecutor gratuito del navegador y la API de prepago devuelven el mismo JSON, incluido el cuadrado, el flujo fraccionado y el orden de columnas, cada vez que usted la invoca para docencia, write-ups de CTF o ejercicios de cifrado histórico.
Cómo funcionan la clave de transposición, los campos de la API y la respuesta
Tras el fraccionamiento, el flujo de etiquetas se escribe por filas en una rejilla cuya anchura es la longitud de la clave de transposición. Las columnas se leen luego en el orden obtenido al ordenar los caracteres de la clave en orden Unicode, usando el índice original de izquierda a derecha como desempate estable cuando se repite la misma letra. El descifrado invierte ese paso: las etiquetas del criptograma rellenan las columnas en el orden de la clave según la altura de cada columna para la longitud del flujo, y la rejilla se lee de izquierda a derecha y de arriba abajo. El texto debe producir símbolos utilizables tras la normalización —letras o dígitos al cifrar, etiquetas ADFGVX al descifrar—. Envíe un cuerpo JSON con tres campos de cadena obligatorios —text, square_key y key— más un mode opcional que por omisión es encrypt si se omite. Los alias aceptados para text incluyen input, value, data, message, plaintext y ciphertext; square_key también acepta square_keyword, polybius_key, keyword y square; key acepta transposition_key, column_key, tkey y colkey; mode acepta operation, op, direction y action, y reconoce sinónimos habituales como encode o decode. Cualquier clave ausente o vacía es invalid_input y no se cobra. En caso de éxito la respuesta repite el texto y las claves originales, informa square_key_used como los símbolos distintos de la palabra del cuadrado en orden de relleno, mode como encrypt o decrypt, los flujos intermedios normalized y fractionated, result y text como las etiquetas del criptograma o los símbolos recuperados, square como las seis filas de seis celdas, labels como el conjunto fijo ADFGVX, column_order como la permutación de índices de columna, length y fractionated_length, formula como una regla mnemotécnica breve y message como un resumen en una línea. El precio es un fijo $0.002 por petición correcta con unidad item.
Consejos prácticos, límites y búsquedas relacionadas
Mantenga las cargas por debajo del máximo publicado de cien mil caracteres para acotar la memoria del Worker. Al enseñar, empareje ejemplos: una palabra clásica del cuadrado como PRIVACY con transposición GERMAN sobre un mensaje mixto muestra el fraccionamiento y el reorden de columnas; una demo corta CODE42 muestra celdas de dígitos; y una clave de transposición vacía demuestra la vía dura invalid_input que reporta la clave ausente. Las tareas fallidas que devuelven invalid_input no consumen saldo prepago, lo que mantiene baratos los scripts exploratorios cuando los clientes prueban claves en blanco.
Casos de integración
Laboratorios de cifrado clásico en el aula
Los estudiantes construyen a mano un cuadrado ADFGVX 6×6, fraccionan un mensaje corto mixto de letras y dígitos, aplican la clave de transposición y comparan etiquetas y flujo final con el resultado determinista de la API.