入力

難読化された出力

JavaScriptオブフスケーターとは?

JavaScriptを本番環境に配布した瞬間、誰でもDevToolsを開いて読むことができます。クライアントサイドのコードに独自アルゴリズム、ライセンスチェック、競合他社に見せたくないロジックが含まれている場合、難読化は実質的な抑止力になります。MDN JavaScriptドキュメントは難読化ツールが利用する言語の内部動作を説明しています。このツールは変数名をマングルし、文字列リテラルをエンコードし、制御フローを再構築します — ECMAScript仕様に準拠しながら。プロフェッショナルなパイプラインにはobfuscator.ioも参照してください。すべてブラウザ内で動作し、何もサーバーに送信されません。

このツールは完全にブラウザ内で動作します。サーバーには何も送信されません。JSを貼り付けるかファイルをアップロードすると、難読化された出力が得られます。難読化解除にはJavaScriptデオブフスケーターを、ミニファイのみにはJavaScriptミニファイアーを、フォーマットにはJavaScriptフォーマッターを使用してください。

このツールの使い方

1

貼り付けまたはアップロード

左パネルにJavaScriptを貼り付けるか、.jsまたは.txtファイルをアップロードしてください。サンプルで例のコードを読み込めます。クリアでリセットできます。

2

難読化された出力を表示

右パネルに難読化されたコードが表示されます。ロジックは保たれますが、読みにくく逆解析が困難になります。

3

コピーまたはダウンロード

難読化されたコードを取得するにはコピーまたはダウンロードを使用してください。デプロイ前にテストしてください。難読化はパフォーマンスに影響することがあります。

JavaScriptオブフスケーターの例

JavaScriptの難読化例です(変数名がマングルされます)。

例:MSISDN検証

入力(読みやすい):

入力

難読化された出力(名前がマングル):

出力

JavaScriptオブフスケーターが役立つ場面

クライアント側のロジックを保護する、アルゴリズムを隠す、軽いコピーを防ぐ場合に、難読化で難易度を上げます。セキュリティではありません。決意したユーザーは逆解析できます。サイズ削減にはJavaScriptミニファイアーを使用してください。webpackrollupなどのビルドツールで難読化コードをバンドルできます。ソースマップでデバッグを参照してください。

よくある質問

JavaScriptソースコードはここで安全ですか?

はい — 難読化は完全にブラウザ内で実行されます。何もお使いのマシンを離れません。独自アルゴリズムや本番コードに安全に使用できます。

難読化でコードは壊れますか?

適切な難読化は実行時の動作を保ちます。デプロイ前に難読化された出力をテストしてください。evalFunction()を使うコードは影響を受ける場合があります。

誰かが難読化を元に戻せますか?

はい — 難読化は障壁を上げますが、越えられない壁ではありません。JavaScriptデオブフスケーターでコードがどれだけリバースされるかテストできます。

難読化と圧縮の違いは?

圧縮は空白を削除してコードを小さくします。難読化は意図的にコードを読みにくくします。難読化された出力は元より大きくなることが多いです。

難読化でJavaScriptが遅くなりますか?

強い難読化(特に制御フローの平坦化)は実行を測定可能に遅くすることがあります。本番では控えめな設定を使用し、常にベンチマークを測定してください。

関連ツール

ECMAScriptMDN JavaScriptTerserwebpackESLint