¿Por qué ofuscar JavaScript?
Cualquier cosa que envíes al navegador (código JS, endpoints de API, lógica de paywall, comprobaciones de licencia) se puede abrir en DevTools en 3 segundos y leerse como un libro. La ofuscación no es cifrado (eso es imposible por definición, el navegador igualmente tiene que ejecutar el código), pero sube el listón para que un `Ctrl+F` casual en el panel Sources no encuentre nada interesante.
Las variables pasan a llamarse cosas como `_0x4857`, los strings se mueven a una tabla cifrada de lookup, el flujo de control se "aplana" y enreda, los números se vuelven expresiones (`5` se vuelve `0x1 + 0x4`). Todo se sigue comportando igual en runtime.
Pega tu código, elige un preset (Low / Medium / High) o activa opciones individuales, copia o descarga el resultado. Todo se ejecuta en tu navegador: el código nunca sale de tu equipo. Eso importa porque normalmente ofuscas exactamente lo que no quieres compartir.
Cómo se usa
- Pega código JavaScript en el panel izquierdo o pulsa "Subir archivo" para cargar `.js`, `.ts`, `.mjs` del disco.
- Elige un preset: Low (maquillaje ligero), Medium (predeterminado sensato), High (revuelto máximo, runtime más lento).
- Opcionalmente despliega las opciones avanzadas y activa flags individuales (p. ej. activar selfDefending, desactivar deadCodeInjection).
- A la derecha ves la salida ofuscada y una comparativa de tamaño: a mayor preset, mayor el archivo.
- Prueba el resultado en DevTools: debe comportarse igual que el original. Si algo se rompe, baja el preset.
- Pulsa "Copiar" para pegar en tu bundler o "Descargar" para guardar como `obfuscated.js`.
- Envía la versión ofuscada a producción. Mantén el código original en privado: el archivo ofuscado es el artefacto, no la fuente.
Cuándo te ayuda
Situaciones concretas donde la ofuscación compensa:
- Un algoritmo cliente propietario. Por ejemplo un motor de recomendaciones a medida, un algoritmo de ordenación original, las reglas a medida de un juego de navegador.
- Validación de licencia en una app SaaS. El cliente tiene el JS, pero un parche rápido ("borra este `if (!valid) return`") es más difícil cuando `valid` ya no existe como nombre.
- Ocultar endpoints de API. Las URLs y claves siguen visibles (para quien tenga ganas), pero no aparecen en un grep de un segundo.
- Proteger el código frente a la competencia. Una empresa pequeña que distribuye una librería SaaS alojada por clientes: la ofuscación sube el coste de clonar tu lógica.
- Antitrampas para widgets. Widgets de chat, formularios de captación, snippets de analítica: la ofuscación dificulta modificarlos en vivo.
- Extensiones de navegador y userscripts. Si distribuyes un userscript, la ofuscación desincentiva el "lo forqueo y lo revendo como mío".
A continuación, optimiza también tus SVG o convierte HTML a JSX. Para seguridad real del lado del cliente usa un generador de contraseñas fuertes.