🔒 JavaScript難読化
変数や関数を無意味な名前に変更し、文字列リテラルをエスケープシーケンスに変換してJavaScriptを保護。完全にブラウザ内で動作——アップロード不要。
JavaScript難読化について
このJavaScript難読化ツールは完全にブラウザ内で動作します。ソースコードをトークン化し、2つの変換を適用します:var、let、const、functionで宣言された識別子は _0x3a1f のような無意味な名前に変更され、文字列リテラルは \x68\x65\x6c\x6c\x6f のような16進エスケープシーケンスに変換されます。結果は同じように動作しますが、人間が読んだりリバースエンジニアリングしたりする難易度が大幅に上がります。サーバーにアップロードされることはありません。
オプションの説明
- 識別子をリネーム —— 宣言された変数、パラメータ、関数名を生成されたトークンに置き換えます。プロパティアクセス(ドットの後)と予約語はそのまま残ります。
- 文字列をエスケープ —— 文字列リテラル内の各文字を
\xHHエスケープとして書き換え、プレーンテキストで検索できないようにします。実行時の値は同じです。 - コメントを削除 —— 難読化前に
//と/* */コメントを削除し、ヒントや作者情報が漏洩しないようにします。
使い方
- JavaScriptを入力ボックスに貼り付けます。
- 適用したいオプションにチェックを入れます。
- 難読化をクリックして保護された出力を生成します。
- 統計行で元のサイズ、難読化後のサイズ、リネームされた識別子の数を確認します。
- コピーをクリックして結果をコピーするか、クリアでやり直します。
よくある質問
難読化でコードは暗号化されますか? いいえ。難読化はコードを読みにくくしますが、決意ある分析者なら逆算可能です。真の秘匿性には暗号化を使用し、シークレットはサーバーに保管してください。
難読化されたコードは動作しますか? はい。変換は実行時の動作を保持し、名前と文字列表現のみが変わります。公開前に出力をテストしてください。
グローバル変数もリネームされますか? スクリプトの最上位の宣言もリネームされますが、他のスクリプトやHTML属性からの参照が壊れる場合があります。最も安全な結果のために、コードをIIFEで囲んでください。