Webの場合、JavaScriptはブラウザで動くため公開され、誰でも解読することができ、コピペすることができてしまいます。これらを簡単にさせない為に「難読化」という技術と便利なツールがあります。
目次
圧縮と難読化、暗号化それぞれの違い
- 圧縮【minification】
コードのボリュームを縮小する事。より軽く速いコードにする。 - 難読化【obfuscation】
コードを分かりにくい形に変換し、理解しづらくする。 - 暗号化【encryption】
「完全に読めない」ものへの変更。
暗号とはソースコードを暗号した人のみが所有する鍵で解読可能
難読化のメリット
- ブラウザの開発ツール等でコードを改ざんしづらくする(完璧ではない)
- コードを短くして、パフォーマンス向上の可能性。
ここで紹介するツール等での難読化は、あくまで”読みづらく”するものなので、絶対に解読されたくない場合はサーバサイド実装することになります。
JavaScript圧縮ツール
圧縮のみ行う場合は、下記のツールを使うことが多いです。
JS Minifier
https://javascript-minifier.com/
JavaScriptのコードをコピペしてボタンをクリックするだけで圧縮することができます。
CSSの圧縮も可能です。
JavaScript難読化ツール
難読化にはこのような処理を行うことが多いです。
- 変数名を短くする
- 改行、スペース、タブ、コメントの削除
- コードの冗長性を排除
JavaScriptの難読化を行うには、以下のツールがよく使われています。
Javascript Obfuscator
初心者にも使いやすく、難読化の効果も高いため、利用されているツールのひとつです。
Jjencode
https://utf-8.jp/public/jjencode.html
デコーダー(復元)が存在するのも利用されている理由となっています。
Closure Compiler
https://closure-compiler.appspot.com/home
Google がOSSとして公開しているツール。
圧縮や最適化がメインの使い方のようで
難読化しても JavaScriptbeautifier を利用すると復元できます。
まとめ
あわせて読みたい記事
あわせて読みたい書籍
リンク
リンク
リンク