Ir para o conteúdo

Ofuscador JavaScript

Converta o código-fonte JavaScript num fragmento codificado em hexadecimal eval(unescape(...)) que oculta o código de uma leitura rápida.

Entrada
Saída

Ofuscador JavaScript

Cole qualquer código-fonte JavaScript e esta ferramenta reescreve-o como uma única cadeia escapada em hexadecimal que se remonta e se executa com eval(unescape('...')). É o clássico truque de "ofuscação básica": cada carácter do seu código torna-se numa sequência %XX (ou %uXXXX para caracteres fora dos primeiros 256 pontos de código), por isso o código-fonte deixa de ser legível à primeira vista — sem nomes de variáveis, sem literais de cadeia, sem comentários visíveis.

Por predefinição, o resultado é envolvido numa função auto-executável, (function(){eval(unescape('...'))})();, por isso pode colocar o resultado diretamente numa tag <script> ou noutro ficheiro e executa-se imediatamente, exatamente como o original. Desative "Envolver em função auto-executável" se preferir apenas a declaração eval(unescape('...')); em vez disso, por exemplo para incorporar dentro de uma função que já controla.

Esta é ofuscação, não encriptação nem segurança: unescape() e eval() são visíveis no resultado, e descodificar a cadeia hexadecimal de volta para código-fonte é uma operação de uma linha para qualquer pessoa que olhe — uma consola do navegador fá-lo tão depressa quanto conseguir colar. Utilize-a como uma forma de desencorajar a cópia casual ou manter um fragmento longe de uma vista rápida do código-fonte, não como uma forma de proteger segredos, chaves API ou qualquer coisa que realmente deva manter-se confidencial.

Tudo funciona localmente no seu navegador. O código que cola nunca é carregado ou enviado para qualquer lugar, portanto é seguro ofuscar scripts proprietários ou não publicados. O contador ativo sob o resultado mostra quantos caracteres entraram, quantos saíram e quantos bytes foram codificados em hexadecimal, para que possa ver o aumento de tamanho antes de copiar ou transferir o resultado.

FAQ

É segurança real ou o código pode ser desofuscado?
Não é segurança. Qualquer pessoa pode executar unescape() na cadeia dentro do resultado e obter o seu código-fonte original num passo — isto apenas oculta o código de uma vista rápida, não de quem realmente olha.
O código ofuscado funcionará exatamente como o original?
Sim. eval(unescape('...')) reconstrói e executa o código-fonte original exato, carácter por carácter, incluindo espaços, quebras de linha e conteúdo de cadeias.
O que faz "Envolver em função auto-executável"?
Envolve a chamada eval(unescape('...')) em (function(){...})(); para que o resultado se execute imediatamente como uma declaração autónoma. Desative se pretender colocar a chamada eval(unescape('...')); dentro da sua própria função ou âmbito.
Funciona também em código minificado?
Sim. Pode ofuscar qualquer texto JavaScript, minificado ou não — a ferramenta trata a entrada como texto simples e codifica-a em hexadecimal carácter por carácter, por isso minificar primeiro (com um minificador CSS/JS) apenas torna a saída codificada mais curta.
O seu código-fonte é carregado em algum lugar?
Não. O ofuscador funciona completamente no seu navegador — o código que cola nunca abandona o seu dispositivo.