Empaqueta JavaScript en el envoltorio eval clásico o desempaqueta una carga para recuperar el código. Es ofuscación, no cifrado, y el desempaquetado ejecuta el código: usa solo scripts de confianza.
Se ejecuta localmente en tu navegadorEmpaquetar reescribe el JavaScript dentro del envoltorio eval(function(p,a,c,k,e,d){…}(…)) del clásico empaquetador Base62: cada palabra se convierte en un índice dentro de un diccionario de palabras únicas ordenadas, y la carga conserva el texto original con comillas, barras invertidas y saltos de línea escapados. Desempaquetar evalúa esa carga en esta página y muestra el JavaScript que produce.
Esto es ofuscación, no cifrado, y desempaquetar ejecuta el código que pegas: úsalo solo con scripts de confianza. Los dos botones trabajan únicamente con el texto del cuadro, no se sube nada y la página no envía ninguna petición al empaquetar ni al desempaquetar.
Cada palabra (letras, dígitos, guion bajo y $) se sustituye por un índice en base 62 (0-9, luego a-z, luego A-Z) y las palabras únicas se ordenan en el diccionario que viaja con la carga. La carga es una cadena entre comillas simples, así que las comillas, las barras invertidas y los saltos de línea se escapan en lugar de borrarse: un comentario // sigue siendo un comentario y una sentencia sin punto y coma conserva su salto de línea.
El resultado es JavaScript normal: si lo pegas en una página, se ejecuta, y cualquier desempaquetador que evalúe el envoltorio devuelve el código original. En esta versión se comprobó la ida y vuelta byte a byte con comillas escapadas, expresiones regulares con barras invertidas, plantillas de texto, comentarios de bloque, archivos sin punto y coma, texto CJK, identificadores con $, texto JSON y diccionarios de más de 60 palabras.
Desempaquetar acepta cualquier carga que se evalúe como texto, incluidas las creadas por este mismo envoltorio en otro sitio. El cuadro de resultado es de solo lectura y tiene resaltado de sintaxis, y el botón de copiar copia su texto.
Desempaquetar evalúa la entrada dentro de esta página —es justo lo que hace el envoltorio eval()—, así que desempaqueta solo código de confianza. Si la carga lanza un error o devuelve algo que no es texto JavaScript, verás un aviso en lugar de un cuadro vacío.
Empaquetar reduce el código a una sola línea y suele encoger el código repetitivo: 2,7 KB de funciones pasaron a 1,8 KB, 16,7 KB a 11 KB y 85 KB a 55 KB, con un tiempo de empaquetado de 1 a 5 ms y de desempaquetado de 0,3 a 3 ms en Chrome.
Como el envoltorio es reversible por diseño, toma el resultado como ofuscación contra una lectura casual, no como protección de un secreto: cualquiera puede pegarlo aquí o en otro desempaquetador y recuperar el código.