ForHosting KIT · Utilidades de desarrollo

Cifrado afín

Cifre o descifre con el cifrado afín, que multiplica la posición de cada letra por a y le suma b: con a en 5 y b en 8, AFFINE CIPHER se convierte en IHHWVC SWFRCP. También verá el inverso de a, aquí 21. Gratis en su navegador.

  • Gratis
  • Funciona en su navegador
  • Sin registro
  • Sus datos no salen de su equipo
Úselo desde WebAPIEmailTelegramApp pronto
Si escribe
Texto
AFFINE CIPHER
A
5
B
8
Modo de cálculo
Encrypt
Obtiene
Resultado
IHHWVC SWFRCP
A inversa
21
Longitud
13
Letras transformadas
12

El cifrado afín es una sustitución monoalfabética clásica que transforma la posición x de cada letra mediante la fórmula lineal E(x)=(a·x+b) mod 26, donde a es un multiplicador coprimo con veintiséis y b un desplazamiento aditivo. El descifrado multiplica por el inverso modular de a, de modo que todo par de claves válido es totalmente reversible. A diferencia de ROT13 o Atbash, ambas claves son parámetros libres dentro del conjunto permitido, lo que convierte al cifrado afín en un paso didáctico habitual entre el César de desplazamiento fijo y los cifrados monoalfabéticos completos con palabra clave. Se utiliza en tareas de criptoanálisis, calentamientos de CTF, libros de acertijos y demostraciones de aritmética modular en clase. Esta capacidad acepta un texto no vacío, claves enteras a y b, y un modo opcional de cifrado o descifrado; devuelve la cadena transformada junto con el inverso de a y un recuento de letras.

Reglas de validación, claves coprimas y errores frecuentes

La regla decisiva del producto es que a debe ser coprimo con veintiséis: gcd(a,26) debe ser igual a uno para que exista el inverso modular. Los multiplicadores válidos son uno, tres, cinco, siete, nueve, once, quince, diecisiete, diecinueve, veintiuno, veintitrés y veinticinco; los valores pares y los múltiplos de trece comparten un factor con veintiséis y se rechazan con un mensaje claro de que a no es coprimo.

No trate la salida como cifrado para confidencialidad: el espacio de claves es minúsculo, el análisis de frecuencias sigue funcionando y la página del producto nunca debe presentar el cifrado afín como un control de seguridad para contraseñas, tokens o datos personales. Prefiera esta página cuando la intención de búsqueda sea cifrado afín, cifrar y descifrar afín o cifrado monoalfabético modular; Atbash y ROT13 responden a intenciones de correspondencia fija, el cifrado de cercas a transposición y Base64 a codificación, por lo que siguen siendo herramientas separadas.

Al descifrar, use el mismo a y b que generaron el criptograma; un par incorrecto produce una sustitución distinta que no coincidirá con el texto original.

Cómo usarlo en clase y hasta dónde llega

Use el cifrado afín gratuito del navegador para comprobar deberes, diapositivas de clase, práctica de CTF y cifrados o descifrados puntuales sin escribir código de inversos modulares en cada lenguaje. Un flujo de trabajo típico en clase muestra que el cifrado César es el caso particular a igual a uno, luego varía a dentro del conjunto de coprimos y demuestra que los multiplicadores pares rompen la invertibilidad. Los manuales de soporte pueden revertir notas ligeramente ofuscadas que el personal escribió con claves de clase conocidas.

Los sitios de acertijos pueden precalcular las respuestas para mostrarlas y revelarlas a petición con mode decrypt. Combínela con análisis de frecuencias u otras herramientas clásicas solo cuando un paso didáctico posterior necesite otra familia de cifrados: mantenga el afín en su propia página para que la intención SEO siga centrada en la sustitución modular con clave.

Deberes de criptoanálisis y calentamientos de CTF

Los estudiantes cifran frases cortas con a y b conocidos, luego descifran los criptogramas de sus compañeros o recuperan claves bajo restricciones sin instalar un CAS.

¿Cómo cifro texto con el cifrado afín?

El campo result de la respuesta contiene el criptograma.

¿Cómo descifro un criptograma afín?

Envíe el criptograma como text, el mismo a y b usados para cifrar, y mode decrypt (o decode). El resultado es el texto en claro reconstruido cuando las claves coinciden.

¿Qué ocurre si a no es coprimo con 26?

La correspondencia afín solo es biyectiva cuando gcd(a,26)=1; los multiplicadores pares y los múltiplos de 13 se rechazan.

¿Es gratuita la herramienta de cifrado afín?

La herramienta del navegador se ejecuta gratis en su dispositivo.

¿Es el cifrado afín un cifrado seguro?

No. El afín es un cifrado monoalfabético clásico para acertijos y enseñanza, no para confidencialidad. No lo use nunca para contraseñas ni datos sensibles.

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.

POSThttps://api.kit.forhosting.com/enc/affine

¿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.

curl -X POST https://api.kit.forhosting.com/enc/affine \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"AFFINE CIPHER","a":5,"b":8}'
{
  "text": "AFFINE CIPHER",
  "a": 5,
  "b": 8
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.affine",
  "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.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Cuando a comparte un factor con veintiséis, la solicitud falla con invalid_input porque la correspondencia no sería biyectiva.

Cómo funciona la correspondencia afín y qué contiene la respuesta

El cifrado trata cada letra latina como un número de cero a veinticinco, lo multiplica por la clave a, suma la clave b y reduce el resultado módulo veintiséis antes de escribir la letra de nuevo con su capitalización original. Las mayúsculas de la A a la Z y las minúsculas de la a a la z usan los mismos desplazamientos, de modo que las frases con capitalización mixta conservan su forma y solo cambia la identidad de las letras. Los dígitos, espacios, signos de puntuación, emoji y escrituras no latinas pasan sin cambios, así que los mensajes mantienen sus espacios y símbolos. El modo opcional mode es encrypt por defecto; encrypt y encode aplican la correspondencia directa, mientras que decrypt y decode la invierten. El descifrado recupera el texto en claro calculando un inverso modular a_inv tal que a·a_inv ≡ 1 mod 26, y evaluando después D(y)=a_inv·(y−b) mod 26 para cada letra. Envíe JSON con el campo de cadena obligatorio text con cualquier mensaje no vacío, el entero obligatorio a entre uno y veinticinco y coprimo con veintiséis, y el entero obligatorio b entre cero y veinticinco; los alias input, value, s y message sirven para el cuerpo, multiplier, key_a y alpha son alias de a, y shift, key_b y beta son alias de b. Si la operación tiene éxito, la respuesta incluye result con el texto transformado, mode normalizado a encrypt o decrypt, a y b que repiten las claves, a_inv con el inverso usado para descifrar, length igual al número de caracteres de la entrada, letters_transformed con el recuento de letras A–Z o a–z realmente transformadas, y method igual a affine para que los clientes puedan ramificar sin inspeccionar la forma de la respuesta. Entradas idénticas producen siempre un JSON idéntico, porque el proceso es aritmética modular pura, sin red, sin semilla aleatoria y sin reloj.

Reglas de validación, claves coprimas y errores frecuentes

Un text ausente, que no sea cadena o vacío provoca invalid_input y no se cobra en la API de prepago una vez que el motor rechaza la solicitud. La ausencia de a o b, claves no enteras, a fuera del rango de uno a veinticinco o b fuera del rango de cero a veinticinco también fallan con invalid_input. Los espacios, dígitos y signos de puntuación no se eliminan: solo las letras latinas participan en la sustitución, así que las cadenas con mucha puntuación devuelven igualmente un resultado completo con un letters_transformed menor.

Uso de la API, precios, flujos de trabajo en clase y límites prácticos

Recurra a la API de prepago de KIT cuando un backend, una función serverless, una plataforma de tutoría o un SDK necesite un contrato estable con saldo a $0.002 por elemento procesado con éxito; los fallos de validación nunca consumen saldo tras el rechazo. Quienes publican SDKs pueden conectar el campo result directamente a un botón de copiar, mientras que a, b, a_inv y method hacen que los ejemplos de OpenAPI se expliquen por sí solos. Mantenga las cargas en tamaños de texto razonables para una llamada de elemento en un isolate de Worker; esta herramienta es para mensajes y fragmentos, no para blobs binarios de varios megabytes.

Demostraciones de aritmética modular en clase

Los docentes muestran que solo los multiplicadores coprimos son invertibles, contrastan el afín con Atbash o ROT13, y fijan a igual a cinco y b igual a ocho como fixture de libro.

Fixtures de pipelines y CI

Los scripts y las pruebas de integración continua fijan salidas afines deterministas y el error de a no coprimo para que los fallos accidentales de inverso o gcd salten rápido.

Ver la documentación completa del KIT →