Cifrado Gronsfeld
Con la clave 31415, ATTACKATDAWN se cifra como DUXBHNBXEFZO: cada dígito adelanta la letra siguiente ese número de posiciones y la clave se repite hasta terminar el mensaje. Para descifrar, se retrocede lo mismo. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- ATTACKATDAWN
- Clave
- 31415
- Modo de cálculo
- Encrypt
- Resultado
- DUXBHNBXEFZO
- Entrada
- ATTACKATDAWN
- Texto
- DUXBHNBXEFZO
- Letras desplazadas
- 12
El cifrado Gronsfeld es un sistema polialfabético clásico parecido a Vigenère, pero con una cadena de dígitos en lugar de una palabra clave de letras: cada dígito del cero al nueve es el desplazamiento César que se aplica a la siguiente letra del mensaje, y la secuencia de dígitos se repite hasta procesar todas las letras.
Cómo funcionan la clave numérica y los desplazamientos de letras
Gronsfeld se entiende mejor como Vigenère con un alfabeto de clave restringido a diez símbolos. Escriba su secreto como secuencia de dígitos decimales; el primer dígito es el desplazamiento de la primera letra, el segundo de la segunda, y así sucesivamente, volviendo al inicio de la clave cuando el mensaje es más largo que la clave.
El cifrado suma el dígito al índice de la letra en el alfabeto latino y reduce módulo veintiséis; el descifrado resta el mismo dígito con el mismo envoltorio modular, de modo que un ida y vuelta restaura las letras originales. Se conserva el caso: una A mayúscula desplazada tres se convierte en D, y una a minúscula en d, lo que mantiene legibles las frases de ejemplo en demostraciones.
Los caracteres que no son letras —espacios, comas, dígitos dentro del cuerpo del mensaje, emoji— pasan sin cambio y no consumen una posición de la clave, según la convención habitual de enseñanza polialfabética. Una clave que, tras recortar espacios, contenga cualquier carácter no dígito es inválida: Gronsfeld se define por una clave numérica, así que letras, espacios y puntuación en el campo de clave son errores, no un silencio que caiga a una palabra clave Vigenère.
Consejos prácticos, límites y búsquedas relacionadas
Elija una clave con varios dígitos distintos para que el flujo de desplazamientos no sea un solo cifrado César disfrazado; las secuencias cortas y memorables siguen valiendo para demostraciones, pero cadenas irregulares más largas barajan más el alfabeto. Recuerde que solo las letras avanzan la clave: si cifra una frase con espacios, los espacios permanecen y la siguiente letra toma el siguiente dígito, como esperan los estudiantes al marcar columnas a mano.
Las comprobaciones de ida y vuelta son la mejor prueba de cordura: cifre una frase, descifre el resultado con la misma clave y confirme que el flujo de letras coincide con la entrada original sensible a mayúsculas. Esta página apunta a quien busca un cifrado Gronsfeld, un Vigenère de clave numérica o un cifrador de desplazamientos por dígitos en línea; no es AES, no es una bóveda moderna de contraseñas, no son digrafos Playfair ni ROT13.
Prefiera esta capacidad cuando necesite criptografía polialfabética clásica transparente con clave solo de dígitos para educación o acertijos; si necesita secreto real, use un cifrado autenticado moderno.
Qué puede hacer con ella
Verificación de CTF y acertijos
Los autores de retos comprueban cifrado y descifrado Gronsfeld con una clave numérica publicada sin mantener un script offline aparte.
Demostraciones históricas de cripto
Museos y blogs demuestran en vivo cómo una clave de dígitos difiere de una palabra clave Vigenère de letras cifrando frases de visitantes en el navegador.
Preguntas frecuentes
¿Qué es el cifrado Gronsfeld?
Un cifrado polialfabético clásico: como Vigenère, pero la clave es una cadena de dígitos 0–9. Cada dígito es el desplazamiento César de la letra correspondiente y se repite según haga falta.
¿En qué se diferencia Gronsfeld de Vigenère?
Gronsfeld restringe la clave a dígitos 0–9, así que cada desplazamiento es como máximo de nueve posiciones.
¿Qué ocurre si la clave tiene letras o espacios?
Una clave Gronsfeld debe contener solo dígitos 0–9 tras recortar espacios.
¿Se cifran espacios y puntuación?
No. Solo se desplazan A–Z y a–z. Los demás caracteres pasan sin cambio y no consumen un dígito de la clave.
¿Es gratis el cifrado Gronsfeld?
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/gronsfeld \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"ATTACKATDAWN","key":"31415"}'const res = await fetch("https://api.kit.forhosting.com/enc/gronsfeld", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "ATTACKATDAWN",
"key": "31415"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/gronsfeld",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "ATTACKATDAWN",
"key": "31415"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/gronsfeld", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"ATTACKATDAWN","key":"31415"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"ATTACKATDAWN","key":"31415"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/gronsfeld", 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": "ATTACKATDAWN",
"key": "31415"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.gronsfeld",
"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.
Límites
max_chars | 100000 |
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 el texto que desea proteger o recuperar, una clave numérica como tres uno cuatro uno cinco, y el modo cifrar o descifrar; la herramienta desplaza letras módulo veintiséis conservando mayúsculas y minúsculas, deja intactos espacios y puntuación, y rechaza cualquier clave que no sea solo dígitos con un error invalid_input claro, de modo que un error tipográfico nunca se convierta en silencio en un alfabeto incorrecto. Como el mapeo es aritmética modular determinista pura —sin red, sin semillas aleatorias, sin reloj de pared— el ejecutor gratuito del navegador y la API prepago devuelven el mismo JSON, incluida la lista de desplazamientos aplicados a cada letra, cada vez que lo invoca para hojas de clase, práctica CTF o demostraciones históricas de cifrado.
Cómo funcionan la clave numérica y los desplazamientos de letras
El texto vacío y las claves vacías también se rechazan para que la API nunca devuelva una transformación identidad que parezca exitosa pero no enseñe nada.
Cómo llamar a la API y qué devuelve
El texto debe ser una cadena no vacía de como máximo cien mil caracteres. Envíe un cuerpo JSON con dos campos de cadena obligatorios, text 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; key también acepta digits, numeric_key, secret, k y passphrase; mode acepta operation, op, direction y action, y reconoce sinónimos habituales como encode o decode. La clave debe ser no vacía tras el recorte y coincidir solo con caracteres del cero al nueve; cualquier letra, espacio o puntuación produce invalid_input y no se cobra. En caso de éxito la respuesta repite el texto de entrada original, informa key como la cadena de dígitos normalizada, mode como encrypt o decrypt, result y text como la cadena transformada, letters_shifted y non_letters como conteos, key_length como el número de dígitos, length como el recuento de caracteres de salida, shifts_applied como la lista ordenada de dígitos usados para cada letra en orden, formula como un mnemónico modular breve, y message como un resumen en una línea. El precio es un fijo $0.002 por petición exitosa con unidad item y precio marginal unitario cero.
Consejos prácticos, límites y búsquedas relacionadas
Mantenga las cargas bajo el máximo publicado de cien mil caracteres para acotar la memoria del Worker. Al enseñar, combine ejemplos: ATTACKATDAWN con clave tres uno cuatro uno cinco muestra un cifrado polialfabético clásico; el mismo texto cifrado con mode decrypt recupera la frase; y una clave con una letra demuestra la vía dura invalid_input exigida por el contrato del producto. Las tareas fallidas que devuelven invalid_input no consumen saldo prepago, lo que mantiene baratos los scripts exploratorios cuando los clientes prueban claves no numéricas.
Casos de integración
Laboratorios polialfabéticos en el aula
Los estudiantes aplican a mano los desplazamientos por dígitos y comparan letra a letra los resultados y la lista shifts_applied con la salida determinista de la API.