Webブラウザー上でプログラムを実行するJavaScriptは、さまざまなWebサイトで利用されています。そして、基本的にJavaScriptのプログラムを訪問者に隠すことはできません。各Webブラウザーには「ソースを表示」というメニューがあり、どんなWebサイトでもプログラムも見ることができます。これは、プログラマーからするとうれしいことです。達人の作ったJavaScriptを手軽に見ることができるということですから。

 しかし、Webサイトの管理者からすると、どんなJavaScriptが動いているのかは隠しておきたいものかもしれません。JavaScriptがどのような仕組みで動いているのかを解き明かされては困るということも多々あります。仕組みを解明され、不正なJavaScriptを動かされて、Webサイトが攻撃されるということもあり得ます。

 例えば、スコアを競うJavaScriptで作られたゲームを考えてみましょう。当然、ゲーム終了後にスコアを暗号化してWebサーバーに送信しますが、どのようにして暗号化するのかは秘密にしておきたいことでしょう。

 そのため、JavaScriptを「難読化」してユーザーからコードを隠そうという試みは、ずっと行われてきました。難読化というのは、プログラムの意味を変えないものの、故意と読みにくく置換することを言います。しかし、残念ながら、JavaScriptのプログラムを完全に隠蔽するということはできません。

 それでも、一般ユーザーに読めない程度に難読化するだけで十分であるという場合も少なくありません。難読化したプログラムを解読するには、時間がかかるからです。もし、定期的に難読化の手法を変えていくなら、解読は困難になり、不正をされる確率は低くなるでしょう。

 それで、これから、数回に分けて、JavaScriptの難読化のテクニックを紹介していきます。