Cifrado Porta
Con la frase clave PORTA, «Hello, World!» se convierte en «Oytub, Chjuq!», y la misma frase lo devuelve al original. Las letras pasan por trece alfabetos emparejados, mientras los espacios, las cifras y la puntuación se 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
- Hello, World!
- Key
- PORTA
- Resultado
- Oytub, Chjuq!
- Codificación
- porta
- Letras de la clave
- PORTA
- Longitud de la clave
- 5
El cifrado Porta es un cifrado polialfabético clásico y recíproco inventado por Giovanni Battista della Porta: cada letra latina se transforma frente a una frase clave que se repite usando uno de trece alfabetos emparejados y, como esa tabla es su propia inversa, cifrar el texto cifrado con la misma clave restaura el texto original. Usted pega cualquier texto y una frase clave con al menos una letra latina; las letras A a Z y a a z se mueven bajo la clave mientras dígitos, espacios, puntuación y demás caracteres permanecen, de modo que la estructura legible se conserva.
Cómo el cifrado Porta transforma el texto con una frase clave
Porta es un pariente polialfabético de la familia Vigenère, pero su tabla de cifrado es distinta y recíproca. Las veintiséis letras de clave se agrupan en trece filas: A y B comparten un alfabeto, C y D el siguiente, y así hasta Y y Z. Por cada carácter alfabético del mensaje, tome la siguiente letra de la frase clave (la clave se repite mientras haya letras que transformar), elija la fila de ese par y mapee la letra del texto en claro por esa tabla de medio alfabeto.
Las letras de la primera mitad del alfabeto (A a M) caen en la segunda mitad (N a Z) con una rotación que depende de la fila, y las de la segunda mitad caen en la primera; se conserva el tipo de letra, de modo que una H mayúscula se convierte en letra cifrada mayúscula y la minúscula permanece minúscula.
Los caracteres fuera de A a Z y a a z —incluidos espacios, comas, dígitos, emoji y letras acentuadas fuera del bloque latino básico— se copian sin cambio y no avanzan el puntero de la frase clave. Ese diseño coincide con las tablas Porta de los manuales de criptografía clásica. Como la tabla es una involución, aplicar la misma frase clave una segunda vez deshace la primera transformación: cifrar y descifrar son la misma operación, así que esta herramienta no necesita un indicador de modo aparte.
Matemáticamente cada paso es aritmética modular entera sobre una estructura fija de trece pares; no hay redondeo en coma flotante de la clave, ni llamada de red, ni semilla aleatoria, ni marca de tiempo. Esta página implementa solo el Porta clásico —no la adición Vigenère, no la resta Beaufort, no AES y no un recuperador automático de claves que pruebe cada palabra del diccionario por usted. Esas son herramientas y búsquedas distintas, con sus propias páginas.
Dónde aparecen las herramientas de cifrado Porta en el trabajo real
Los cursos introductorios de criptografía presentan Porta después de César y junto a otras tablas polialfabéticas para que el alumnado practique mapas recíprocos que no exigen una regla de descifrado aparte y vea cómo los pares de letras de clave reducen veintiséis letras a trece alfabetos. Los calentamientos de capture-the-flag y las búsquedas de puzzles aún ocultan mensajes Porta o variantes, y quienes resuelven quieren una transformación predecible por frase clave, no una suite general de criptoanálisis.
Los equipos de soporte y de contenido a veces ofuscan ligeramente spoilers, respuestas de cuestionarios o etiquetas internas con un cifrado clásico por frase clave y necesitan la vía inversa sin instalar una biblioteca criptográfica específica del lenguaje. Los harness de prueba de ingeniería generan vectores de referencia para pipelines de transformación de cadenas y necesitan salidas estables cuando la clave se envuelve, cuando caracteres no alfabéticos interrumpen el mensaje y cuando se mezclan mayúsculas y minúsculas.
Si necesita un desplazamiento César de una sola letra, la adición Vigenère multi-alfabeto, la resta Beaufort, cifrado autenticado fuerte, codificación Base32 o Base64, o recuperación automática de clave por análisis de frecuencias, trátelos como búsquedas y páginas distintas en lugar de sobrecargar esta página clásica de Porta por frase clave.
Qué puede hacer con ella
Demostraciones polialfabéticas recíprocas en el aula
Cifre y descifre frases de ejemplo con una frase clave conocida para que las lecciones de criptografía introductoria muestren los trece alfabetos emparejados de Porta sin un modo de descifrado aparte.
Cifrados por frase clave en puzzles y CTF
Aplique o invierta un Porta con frase clave sobre cadenas de reto sin escribir un script ad hoc para cada conjunto de problemas.
Preguntas frecuentes
¿Qué es el cifrado Porta?
Un cifrado polialfabético clásico y recíproco que mapea cada letra a través de uno de trece alfabetos seleccionados por pares de letras de clave (A/B, C/D, …, Y/Z). La misma operación cifra y descifra.
¿Cómo descifro un texto cifrado con Porta?
Invoque de nuevo la misma capacidad con el texto cifrado como text y la frase clave original. Como Porta es autoinverso, un segundo paso restaura el texto en claro.
¿Qué ocurre si la clave falta o está vacía?
La frase clave debe contener al menos una letra latina A–Z o a–z; las claves ausentes, vacías o sin letras se rechazan y no se cobran.
¿Se cifran los espacios y la puntuación?
No. Solo se transforman A–Z y a–z. Espacios, dígitos, puntuación y demás caracteres pasan sin cambio y no avanzan la clave.
¿Cuánto cuesta?
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/porta \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello, World!","key":"PORTA"}'const res = await fetch("https://api.kit.forhosting.com/enc/porta", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello, World!",
"key": "PORTA"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/porta",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello, World!",
"key": "PORTA"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/porta", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello, World!","key":"PORTA"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello, World!","key":"PORTA"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/porta", 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": "Hello, World!",
"key": "PORTA"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.porta",
"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
Una clave ausente, vacía o sin caracteres alfabéticos se rechaza de inmediato con invalid_input, así que correctores de tareas y scripts nunca caen en silencio a una frase clave por defecto.
Cómo el cifrado Porta transforma el texto con una frase clave
El mismo texto y la misma frase clave siempre producen el mismo JSON.
Qué envía usted y qué recibe de vuelta
Envíe un campo de cadena obligatorio llamado text y un campo de cadena obligatorio llamado key. Comprobaciones clásicas incluyen transformar Hello, World! con la frase clave PORTA, verificar que al alimentar el texto cifrado y la misma clave se recupera la frase original, y confirmar que una clave vacía se rechaza en lugar de tratarse como identidad nula. El texto debe ser una cadena no vacía del mensaje a transformar; la clave no debe quedar vacía tras el filtro alfabético: cadenas solo de espacios y claves que contengan únicamente dígitos o símbolos fallan con invalid_input y un mensaje claro en inglés que menciona el requisito de clave ausente o vacía. En caso de éxito la respuesta incluye result como la cadena transformada, encoding con valor porta, key_letters como el flujo en mayúsculas A–Z realmente usado, key_length como cuántas posiciones alfabéticas tiene ese flujo, input_length y output_length, shifted_chars como el recuento de caracteres alfabéticos movidos, reciprocal en true, y una cadena formula que describe la regla de la tabla de pares para que los clientes puedan afirmar el perfil al que llegaron. Falta de text, falta de key, objetos que no sean cadena en cualquiera de los dos campos, texto vacío y claves sin letras fallan con invalid_input. Los fallos de validación no consumen saldo prepago.
Dónde aparecen las herramientas de cifrado Porta en el trabajo real
Como esta capacidad es un motor de parse puro, el precio de la API es la base publicada de $0.002 por ítem exitoso y la validación fallida no consume saldo.
Casos de integración
Ofuscación ligera de spoilers y etiquetas
Reordene respuestas de cuestionarios o etiquetas internas con una frase clave clásica y restáurelas después con el mismo contrato en el navegador o la API.