JS Obfuscator(JavaScript難読化)

JavaScriptのコードを難読化し、第三者による解析を困難にします。文字列の配列化・制御フロー平坦化・自己防衛コードなど複数のオプションに対応。

入力データはブラウザ内で処理されます
データはサーバーへ送信されません

変換ツール

0 文字

またはファイルをドラッグ&ドロップ

処理はブラウザ内で完結し、コードは外部に送信されません。難読化は解析を困難にするものであり、秘匿化を保証するものではありません。

JS Obfuscatorとは?

配布用のJavaScriptファイルや、簡易的なコード保護を行いたいスクリプトに対して、変数名の意味を消したり、文字列や制御フローを分かりにくく変換したりすることで、第三者による解析のハードルを上げるツールです。

npm定番ライブラリのjavascript-obfuscatorをブラウザ上で直接実行しており、コードが外部サーバーに送信されることはありません。文字列配列化・制御フロー平坦化・ダミーコード混入・自己防衛コードなど、目的に応じて複数のオプションを組み合わせられます。

使い方

  1. 入力欄にJavaScriptのコードを貼り付けます。
  2. 必要に応じてオプション(文字列配列化・制御フロー平坦化・ダミーコード混入など)を選び、「難読化する」をクリックします。
  3. 「結果をコピー」または「ダウンロード」で難読化されたコードを取得できます。
  4. 「自動難読化」をオンにすると、入力の変更に合わせてリアルタイムに結果が更新されます。

よくある質問

難読化と圧縮(minify)の違いは何ですか?

圧縮は空白やコメントを除去してファイルサイズを小さくすることが目的です。難読化は変数名を意味のない文字列に置き換えたり、文字列を配列に退避したりすることで、人間がコードの内容を読み解きにくくすることが目的です。難読化されたコードは圧縮されたコードよりもファイルサイズが大きくなることがよくあります。

難読化すればコードは完全に秘匿できますか?

いいえ。JavaScriptはブラウザ上で実行可能な形で配信される以上、原理的には誰でも実行可能なコードを取得できます。難読化はあくまで「解析にかかる手間を増やす」対策であり、完全な秘匿化を保証するものではありません。

「制御フローを平坦化」オプションはなぜ「重い・低速」と表示されているのですか?

制御フローの平坦化は、プログラムの実行順序をswitch文などで複雑に組み替える処理で、解析耐性は高まりますが、出力コードのサイズと実行時のオーバーヘッドが大きく増加します。大きなコードに適用すると、難読化処理自体にも数秒かかることがあります。

難読化したコードは元に戻せますか?

このツールは難読化(一方向の変換)のみに対応しており、復元機能はありません。難読化前の元のコードは必ず別途保管してください。

入力したコードはサーバーに送信されますか?

いいえ。難読化処理はすべてブラウザ内のJavaScriptで完結しており、外部への送信は一切行われません。