JavaScriptオブフスケーター
JavaScriptを難読化してリバースエンジニアリングからコードを守る。
入力
難読化された出力
JavaScriptオブフスケーターとは?
JavaScriptを本番環境に配布した瞬間、誰でもDevToolsを開いて読むことができます。クライアントサイドのコードに独自アルゴリズム、ライセンスチェック、競合他社に見せたくないロジックが含まれている場合、難読化は実質的な抑止力になります。MDN JavaScriptドキュメントは難読化ツールが利用する言語の内部動作を説明しています。このツールは変数名をマングルし、文字列リテラルをエンコードし、制御フローを再構築します — ECMAScript仕様に準拠しながら。プロフェッショナルなパイプラインにはobfuscator.ioも参照してください。すべてブラウザ内で動作し、何もサーバーに送信されません。
このツールは完全にブラウザ内で動作します。サーバーには何も送信されません。JSを貼り付けるかファイルをアップロードすると、難読化された出力が得られます。難読化解除にはJavaScriptデオブフスケーターを、ミニファイのみにはJavaScriptミニファイアーを、フォーマットにはJavaScriptフォーマッターを使用してください。
このツールの使い方
貼り付けまたはアップロード
左パネルにJavaScriptを貼り付けるか、.jsまたは.txtファイルをアップロードしてください。サンプルで例のコードを読み込めます。クリアでリセットできます。
難読化された出力を表示
右パネルに難読化されたコードが表示されます。ロジックは保たれますが、読みにくく逆解析が困難になります。
コピーまたはダウンロード
難読化されたコードを取得するにはコピーまたはダウンロードを使用してください。デプロイ前にテストしてください。難読化はパフォーマンスに影響することがあります。
JavaScriptオブフスケーターの例
JavaScriptの難読化例です(変数名がマングルされます)。
例:MSISDN検証
入力(読みやすい):
難読化された出力(名前がマングル):
JavaScriptオブフスケーターが役立つ場面
クライアント側のロジックを保護する、アルゴリズムを隠す、軽いコピーを防ぐ場合に、難読化で難易度を上げます。セキュリティではありません。決意したユーザーは逆解析できます。サイズ削減にはJavaScriptミニファイアーを使用してください。webpackやrollupなどのビルドツールで難読化コードをバンドルできます。ソースマップでデバッグを参照してください。
よくある質問
JavaScriptソースコードはここで安全ですか?
はい — 難読化は完全にブラウザ内で実行されます。何もお使いのマシンを離れません。独自アルゴリズムや本番コードに安全に使用できます。
難読化でコードは壊れますか?
適切な難読化は実行時の動作を保ちます。デプロイ前に難読化された出力をテストしてください。evalやFunction()を使うコードは影響を受ける場合があります。
誰かが難読化を元に戻せますか?
はい — 難読化は障壁を上げますが、越えられない壁ではありません。JavaScriptデオブフスケーターでコードがどれだけリバースされるかテストできます。
難読化と圧縮の違いは?
圧縮は空白を削除してコードを小さくします。難読化は意図的にコードを読みにくくします。難読化された出力は元より大きくなることが多いです。
難読化でJavaScriptが遅くなりますか?
強い難読化(特に制御フローの平坦化)は実行を測定可能に遅くすることがあります。本番では控えめな設定を使用し、常にベンチマークを測定してください。