Codificador/decodificador ROT47
«Hello» se convierte en «w6==@»: cada carácter ASCII imprimible avanza 47 posiciones en un círculo de 94, y al pasar el resultado otra vez recupera el original. Espacios, tildes y otros alfabetos no se tocan. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- Hello
- Resultado
- w6==@
ROT47 rota los caracteres ASCII imprimibles 47 posiciones módulo 94. Intención de búsqueda: codificador decodificador rot47. No se requieren llamadas de red, semillas aleatorias ni estado de servidor para una respuesta correcta.
Cómo funciona
ROT47 rota los caracteres ASCII imprimibles 47 posiciones módulo 94. Involutiva en el rango 33–126; las demás unidades de código no cambian. La implementación es JavaScript puro sin servicios externos.
No se requieren llamadas de red, semillas aleatorias ni estado de servidor para una respuesta correcta. Los trabajos fallidos no se facturan. Las landings apuntan a la intención de búsqueda con palabras clave precisas.
Prefiera unidades y rangos explícitos a la coerción silenciosa de tipos incorrectos. Cuando un campo es opcional, los valores por defecto se documentan en params y se ecoan en la salida. Esto
Entradas, límites y redondeo
Los decimales opcionales usan half-up una vez. Las salidas ecoan las entradas clave para que la automatización registre el contexto completo de cada llamada. No se requieren llamadas de red, semillas aleatorias ni estado de servidor para una respuesta correcta.
Los trabajos fallidos no se facturan. Las landings apuntan a la intención de búsqueda con palabras clave precisas. Prefiera unidades y rangos explícitos a la coerción silenciosa de tipos incorrectos.
Cuando
Cuándo usarlo
Úselo cuando su intención de búsqueda coincida con el nombre de la calculadora y necesite una respuesta reproducible para docencia, operaciones financieras, GIS, herramientas de texto o historia de unidades. ROT47 rota los caracteres ASCII imprimibles 47 posiciones módulo 94. No se requieren llamadas de red, semillas aleatorias ni estado de servidor para una respuesta correcta.
Los trabajos fallidos no se facturan. Las landings apuntan a la intención de búsqueda con palabras clave precisas. Prefiera unidades y rangos explícitos a la coerción silenciosa de tipos incorrectos.
Cuando un campo es opcional, los valores por defecto se documentan
Preguntas frecuentes
¿Llama a la red?
No. Todas las transformaciones matemáticas y de texto son locales y deterministas.
¿Quién es el autor?
Aspire (elon@forhosting.com), entrega solo EN; Nitro hidrata los locales.
¿Cómo descifro un texto en ROT47?
Pegue el texto codificado y vuelva a aplicar la misma herramienta. ROT47 es su propio inverso: avanzar 47 posiciones dos veces completa la vuelta a las 94, así que «w6==@» vuelve a ser «Hello».
¿Qué caracteres cambia ROT47?
Solo los caracteres ASCII imprimibles del 33 al 126: letras latinas sin tilde, dígitos y signos de puntuación habituales. Los espacios, las letras con tilde, otros alfabetos y los emojis quedan exactamente igual.
¿ROT47 cambia la longitud del texto?
No. Cada carácter se sustituye por exactamente otro carácter, o se deja como está, así que el texto codificado tiene tantos caracteres como el original, con los espacios y saltos de línea en su sitio.
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/text/rot47 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello!"}'const res = await fetch("https://api.kit.forhosting.com/text/rot47", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello!"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/rot47",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello!"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/rot47", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello!"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello!"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/rot47", 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!"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.rot47",
"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
La calculadora es gratis en el navegador, determinista e idéntica en la ruta API. Las entradas se validan antes de cualquier aritmética; las cargas inválidas fallan con invalid_input. El redondeo half-up se aplica una sola vez desde resultados IEEE brutos cuando se piden decimales. Use el mismo contrato JSON desde hojas de cálculo, ganchos CMS, automatización,
Cómo funciona
La calculadora es gratis en el navegador, determinista e idéntica en la ruta API. Las entradas se validan antes de cualquier aritmética; las cargas inválidas fallan con invalid_input. El redondeo half-up se aplica una sola vez desde resultados IEEE brutos cuando se piden decimales. Use el mismo contrato JSON desde hojas de cálculo, ganchos CMS, automatización o demos didácticas.
Entradas, límites y redondeo
Proporcione los parámetros requeridos como números o cadenas JSON según la documentación. Tipos inválidos, campos obligatorios ausentes o valores fuera de rango provocan invalid_input con un mensaje claro. La calculadora es gratis en el navegador, determinista e idéntica en la ruta API. Las entradas se validan antes de cualquier aritmética; las cargas inválidas fallan con invalid_input. El redondeo half-up se aplica una sola vez desde resultados IEEE brutos cuando se piden decimales. Use el mismo contrato JSON desde hojas de cálculo, ganchos CMS, automatización o demos didácticas.
Cuándo usarlo
La calculadora es gratis en el navegador, determinista e idéntica en la ruta API. Las entradas se validan antes de cualquier aritmética; las cargas inválidas fallan con invalid_input. El redondeo half-up se aplica una sola vez desde resultados IEEE brutos cuando se piden decimales. Use el mismo contrato JSON desde hojas de cálculo, ganchos CMS, automatización o demos didácticas.
Casos de integración
Comprobación rápida
Pegue valores en el widget gratuito y compárelos con una hoja de cálculo.
Automatización
Llame a la API con el mismo contrato JSON desde n8n, scripts o CMS.
Docencia
Muestre la fórmula y los ejemplos golden fijados sin software propietario.
Preguntas técnicas
¿Es gratis en el navegador?
Sí. El nivel A se ejecuta por completo en el cliente con el mismo núcleo que la API.
¿Qué ocurre con una entrada incorrecta?
El manejador lanza invalid_input; los trabajos fallidos no se facturan.
¿Puedo usarlo desde la API?
Sí. Envíe los mismos campos JSON documentados en params.