JavaScript難読化処理
|
8.ビット演算子を活用するビット演算子については、はじめて聞かれる方は、Googleで検索していただくとして、結論だけ言えば、「&」「|」「<<」「>>」などのビット演算子を使えば、次のような演算が可能です。そもそも、このビット演算子の話が出たのは、ソース7-2を見た時に、一文字ずつずらすために「-1」というのがそのまま出ているために、それが嫌で、ということで、このビット演算子を思いついたのでした。 上の4つの数字「40」「3」「2」「11」を使って、計算結果が「1」になる式を考えてみます。中学生ぐらいの数学でしょうか? ((40÷3の商)-11)÷2が1になります。ですから、 この時、変数b2の中に「1」が入っています。これをソース7-2と合体させれば良いことになります。つまり、 のようになります。 (※ 第7章でも書きましたが、本当は、「J="******";(改行)J+="******";」と分割する必要はないのですが、ホームページ上に、半角スペース・改行のないソースをテキストエリア内に表示させる時に、一定文字数以上だとMac版FirefoxやMac版Netscapeで正しく表示できない不具合があるため、このようにしています。あくまでもこの講座の目的としてソースを表示させる上で必要な便宜上の処理であり、実際には分割しなくてもMac版FirefoxやNetscapeでもJavaScriptは動きます。) この難読化したソースを実際に外部ファイル化して、下記の入力フォーム・サンプルで入力チェックができるようにしています。難読化しても問題なく動作することを確認してください。
まだまだ、難読化のためのヒント・アイデアはあります。次のページでは、String.fromCharCodeメソッドを少し変形させるを一挙ご紹介します。第3章では、単純にString.fromCharCodeメソッドのエイリアスを作って、簡単には分からないようにしたのですが、次の章では、さらに一歩踏み込んで、String.fromCharCodeメソッドの亜種?を作ってみます。 目次: |