Cifrado Playfair
Con la clave MONARCHY, INSTRUMENTS se cifra como GATLMZCLRQXA: las letras se agrupan en pares, una X completa el final impar y cada par cambia dentro de un cuadrado de cinco por cinco. Descifre con la misma clave para recuperar las letras. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- INSTRUMENTS
- Clave
- MONARCHY
- Modo de cálculo
- Encrypt
- Resultado
- GATLMZCLRQXA
- Entrada
- INSTRUMENTS
- Clave usada
- MONARCHY
- Normalizado
- INSTRUMENTS
El cifrado Playfair es un sistema clásico de sustitución por digrafos inventado para uso de campo mucho antes de la criptografía moderna: en lugar de mapear una letra cada vez, trabaja sobre pares de letras tomadas de un cuadrado de cinco por cinco que usted construye a partir de una palabra clave secreta. Introduzca cualquier clave no vacía, el texto que desea proteger o recuperar y un modo encrypt o decrypt; la herramienta normaliza las letras, fusiona J en I para caber en la cuadrícula de veinticinco celdas, inserta el relleno X tradicional entre letras repetidas y al final de mensajes de longitud impar, y luego aplica las tres reglas de Playfair: desplazar dentro de una fila, desplazar dentro de una columna, o tomar las otras dos esquinas del rectángulo que forman esas dos letras.
Cómo funcionan el cuadrado de clave y las reglas de digrafo
Playfair comienza convirtiendo su palabra clave en una matriz de cinco por cinco sobre el alfabeto latino con I y J compartiendo una celda, lo que deja veinticinco símbolos distintos. Las letras de la clave se escriben de izquierda a derecha y de arriba abajo, omitiendo duplicados y tratando cada J como I; las letras restantes del alfabeto no usadas completan el resto de la cuadrícula en orden.
El texto plano se reduce solo a mayúsculas y luego se empaqueta en digrafos: si un par potencial contiene la misma letra dos veces, se inserta una X tras la primera aparición para romper el par, y si el flujo final tiene longitud impar se añade una X final.
El cifrado recorre cada par: cuando ambas letras están en la misma fila, cada una se mueve una celda a la derecha con envoltura; cuando ambas están en la misma columna, cada una se mueve una celda abajo con envoltura; en caso contrario las dos letras definen un rectángulo y cada una se sustituye por la letra de la misma fila pero en la columna de la otra.
El descifrado invierte los desplazamientos de fila y columna —una celda a la izquierda o arriba— mientras que la regla del rectángulo es su propia inversa.
Consejos prácticos, límites y búsquedas relacionadas
Elija una palabra clave con varias letras distintas para que el cuadrado no sea casi alfabético; las palabras cortas y memorables bastan para demos, pero las frases largas con letras únicas mezclan más la matriz. Recuerde que espacios, puntuación y dígitos se eliminan antes del cifrado, así que números de teléfono o etiquetas mixtas pierden sus separadores en el flujo de letras —segméntelos o codifíquelos aparte si los necesita después.
Para descifrar, envíe el cifrado solo de letras (longitud par tras normalizar); si aún tiene espacios de una hoja impresa, el solver los ignora. Las comprobaciones de ida y vuelta son la mejor prueba de cordura: cifre una frase, descifre el resultado con la misma clave y compare con el texto normalizado con rellenos.
Esta página atiende a quienes buscan un cifrado Playfair, un cifrador de digrafos o una herramienta de cuadrado de clave en línea; no es AES, no es una bóveda moderna de contraseñas, no es ROT13 y no es un traductor de código de golpes Polybius. Prefiera esta capacidad cuando necesite criptografía clásica de digrafos transparente para educación o puzzles; si necesita secreto real, use un cifrado autenticado moderno.
Qué puede hacer con ella
Write-ups de CTF y puzzles
Los autores de retos verifican los pasos de cifrado y descifrado Playfair para una clave publicada sin mantener un script offline aparte.
Demos de cripto histórica
Museos y blogs demuestran cómo los cifrados por digrafo se diferencian de la sustitución monoalfabética cifrando en vivo frases de visitantes con una clave compartida.
Preguntas frecuentes
¿Qué es el cifrado Playfair?
Un cifrado clásico por digrafos: las letras se cifran por pares usando un cuadrado 5×5 construido a partir de una palabra clave. Las reglas cubren misma fila, misma columna y rectángulo.
¿Por qué I y J son la misma?
Una cuadrícula 5×5 tiene veinticinco celdas para veintiséis letras. El Playfair clásico fusiona I y J en una celda para que toda letra latina siga mapeándose.
¿Qué ocurre si la clave está vacía?
Se requiere una palabra clave con al menos una letra A–Z para construir el cuadrado.
¿Cómo funcionan las letras dobles y la longitud impar?
Al cifrar se inserta una X entre dos letras idénticas que formarían un par, y una X final rellena un flujo de longitud impar para que cada unidad sea un digrafo.
¿Es gratuito el cifrado Playfair?
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/playfair \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"HIDE THE GOLD","key":"MONARCHY"}'const res = await fetch("https://api.kit.forhosting.com/enc/playfair", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "HIDE THE GOLD",
"key": "MONARCHY"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/playfair",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "HIDE THE GOLD",
"key": "MONARCHY"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/playfair", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"HIDE THE GOLD","key":"MONARCHY"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"HIDE THE GOLD","key":"MONARCHY"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/playfair", 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": "HIDE THE GOLD",
"key": "MONARCHY"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.playfair",
"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
Las claves vacías se rechazan con un error invalid_input claro para que un campo de formulario en blanco nunca produzca en silencio una transformación identidad sin sentido. El camino es aritmética de letras puramente determinista —sin red, sin semillas aleatorias, sin dependencia del reloj— de modo que el ejecutor gratuito del navegador y la API prepaga devuelven el mismo JSON, incluido el cuadrado y la lista de digrafos, cada vez que la invoca para enseñanza, write-ups de CTF o ejercicios históricos de cifrado.
Cómo invocar la API y qué devuelve
El text debe igualmente producir al menos una letra tras eliminar lo no alfabético. Envíe un cuerpo JSON con dos campos de cadena obligatorios, text y key, más un mode opcional que por defecto es encrypt si se omite. Los alias aceptados para text incluyen input, value, data, message, plaintext y ciphertext; key también acepta keyword, passphrase, secret y k; mode acepta operation, op, direction y action, y reconoce sinónimos habituales como encode o decode. La key debe ser no vacía y contener al menos una letra A–Z tras la normalización; una cadena en blanco o una clave solo de dígitos y puntuación es invalid_input y nunca se cobra. En éxito la respuesta repite el text y la key originales, informa key_used como las letras distintas de la clave en orden del cuadrado, mode como encrypt o decrypt, normalized como el flujo solo de letras, digraphs como el array de unidades de dos letras procesadas, result y text como el cifrado o las letras recuperadas, square como las cinco filas de cinco letras, pairs como el recuento de digrafos, length como el número de caracteres de salida, formula como una mnemotecnia breve de reglas y message como un resumen de una línea. El precio es un $0.002 fijo 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: una clave clásica como MONARCHY con una frase corta muestra movimientos de rectángulo y fila; una palabra con letras dobles demuestra el relleno X; y una clave vacía demuestra la ruta dura de invalid_input. 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 clase
Los estudiantes construyen a mano un cuadrado de clave, cifran una frase corta y comparan digrafos y el flujo final con el resultado determinista de la API.