圧縮方法としては、
- コメント文除去
- スタック変数・関数名を「_」で始まる短い特殊文字(符号語)に変換
- 定数文字列(""で囲まれているところ)の表現方法を最適化
なので結果的にこれが「難読化」につながるわけです。
またうれしいことに、マルチバイトの%エンコーディングも行ってくれます。
これは非常にありがたく、通常ブログパーツなんかを作っていると、
貼り付け先の charsetとブログパーツ側のJavascriptソースの文字コードが一致してないと
プログラムとして認識されない羽目になり、実行エラーにつながります (文字化け現象も当然として)。
でも、このツールのおかげでcharsetとは異なる 文字コードでjavascriptを実装していても怖くないんですねー。すばらしい。
また圧縮率としては、元ソースの40〜50%程度にまでなりますので、
Javascriptの ソース送信時間の短縮にもつながってありがたい効果ですね。
具体的には以下のようなコマンドを実行します。
1 | $ java -jar custom_rhino.jar -c ahahan.js > ahahan_comp.js |
これで、圧縮・難読化されたJavascriptソース(ahahan_comp.jp)が手に入ります。
改行コードは除去してくれないようなので、
改行コードについては適当に自分でプログラム書いて 除去しましょう。
そうすると、ぱっと見、全く解読できません。
#まぁ、ほんとうは簡単に解読できるツールあるんですけどね。。。