JS Minifier(JavaScript圧縮)
JavaScriptのコメント・空白・改行を除去して圧縮します。console.*除去・変数名短縮にも対応。
JavaScriptのコードを難読化し、第三者による解析を困難にします。文字列の配列化・制御フロー平坦化・自己防衛コードなど複数のオプションに対応。
配布用のJavaScriptファイルや、簡易的なコード保護を行いたいスクリプトに対して、変数名の意味を消したり、文字列や制御フローを分かりにくく変換したりすることで、第三者による解析のハードルを上げるツールです。
npm定番ライブラリのjavascript-obfuscatorをブラウザ上で直接実行しており、コードが外部サーバーに送信されることはありません。文字列配列化・制御フロー平坦化・ダミーコード混入・自己防衛コードなど、目的に応じて複数のオプションを組み合わせられます。
圧縮は空白やコメントを除去してファイルサイズを小さくすることが目的です。難読化は変数名を意味のない文字列に置き換えたり、文字列を配列に退避したりすることで、人間がコードの内容を読み解きにくくすることが目的です。難読化されたコードは圧縮されたコードよりもファイルサイズが大きくなることがよくあります。
いいえ。JavaScriptはブラウザ上で実行可能な形で配信される以上、原理的には誰でも実行可能なコードを取得できます。難読化はあくまで「解析にかかる手間を増やす」対策であり、完全な秘匿化を保証するものではありません。
制御フローの平坦化は、プログラムの実行順序をswitch文などで複雑に組み替える処理で、解析耐性は高まりますが、出力コードのサイズと実行時のオーバーヘッドが大きく増加します。大きなコードに適用すると、難読化処理自体にも数秒かかることがあります。
このツールは難読化(一方向の変換)のみに対応しており、復元機能はありません。難読化前の元のコードは必ず別途保管してください。
いいえ。難読化処理はすべてブラウザ内のJavaScriptで完結しており、外部への送信は一切行われません。