🔒 JavaScript難読化

変数や関数を無意味な名前に変更し、文字列リテラルをエスケープシーケンスに変換してJavaScriptを保護。完全にブラウザ内で動作——アップロード不要。

JavaScript難読化について

このJavaScript難読化ツールは完全にブラウザ内で動作します。ソースコードをトークン化し、2つの変換を適用します:varletconstfunctionで宣言された識別子は _0x3a1f のような無意味な名前に変更され、文字列リテラルは \x68\x65\x6c\x6c\x6f のような16進エスケープシーケンスに変換されます。結果は同じように動作しますが、人間が読んだりリバースエンジニアリングしたりする難易度が大幅に上がります。サーバーにアップロードされることはありません。

オプションの説明

  • 識別子をリネーム —— 宣言された変数、パラメータ、関数名を生成されたトークンに置き換えます。プロパティアクセス(ドットの後)と予約語はそのまま残ります。
  • 文字列をエスケープ —— 文字列リテラル内の各文字を \xHH エスケープとして書き換え、プレーンテキストで検索できないようにします。実行時の値は同じです。
  • コメントを削除 —— 難読化前に ///* */ コメントを削除し、ヒントや作者情報が漏洩しないようにします。

使い方

  1. JavaScriptを入力ボックスに貼り付けます。
  2. 適用したいオプションにチェックを入れます。
  3. 難読化をクリックして保護された出力を生成します。
  4. 統計行で元のサイズ、難読化後のサイズ、リネームされた識別子の数を確認します。
  5. コピーをクリックして結果をコピーするか、クリアでやり直します。

よくある質問

難読化でコードは暗号化されますか? いいえ。難読化はコードを読みにくくしますが、決意ある分析者なら逆算可能です。真の秘匿性には暗号化を使用し、シークレットはサーバーに保管してください。

難読化されたコードは動作しますか? はい。変換は実行時の動作を保持し、名前と文字列表現のみが変わります。公開前に出力をテストしてください。

グローバル変数もリネームされますか? スクリプトの最上位の宣言もリネームされますが、他のスクリプトやHTML属性からの参照が壊れる場合があります。最も安全な結果のために、コードをIIFEで囲んでください。