既存メソッドのエイリアスを自作する。専用ソフトを使用するこのホームページはJavascriptを多用しているため、javascriptがoffのままでは十分にご利用になれません。【シックスコア】9.String.fromCharCodeメソッドを少し変形させるソース2-2で日本語の文字列を英数字に置き換え、String.fromCharCodeメソッドで元の文字に戻すやり方を紹介しました。この方法では、ファイルサイズが大きくなり過ぎることが一つの問題だったのですが、ここでひとつの対策法をご紹介します。ファイルサイズが大きい理由の一つは、原文の日本語1文字(2バイト)に対して数字は5桁(5バイト)になっていることがあります。これを減らすことを考えます。ソース2-2をよく見ると、12300台が多いのが分かります。12354番が「あ」ですから、ひらがながこの辺りの数字であるためにそうなっているのが分かります。そこで、単純に引数の数字をString.fromCharCodeで元に戻すのではなく、「あらかじめ12350を引いた番号を引数に与える形にしておいて、元に戻す関数が実行される際に12350を加えて元に戻す」という方法を考えてみます。ソース9-1(このままは使用できません。後でドッキングが必要です。i=0;iのようにします。引数の数が一定でないので、「arguments.length」でループさせて処理させています。これで復元させる方の関数は良いですが、本来のcharcodeから12350を引いた引数を準備する必要があります。これは、下記のフォームを利用してください。「あいうえお」を変換させると、「s2(4,6,8,10,12);」になります。s2とは、上のソース9-1で定義した関数のことです。変換したい文字列を入力してください。変換結果が表示されます。これらのことを踏まえて、第1章のソース1-2をいったん下記のように、コメント付きで変換します。false;}alert(msg19);}のようになります。マイナスの数も出てきて、いい感じです。そこで、このソースをさらにコメントを削除したり(第1章を参照)、余計な半角スペースを削除する(第5章を参照)、よく出てくるオブジェクト(ここではdocumentとalert。)の名称を変更する(第4章を参照)ことにより、難読化を行います。12350という数字を隠したいので、これをビット演算子(第8章を参照)で表してみます。false;}a(msg19);}のようになります。することで、単純にString.fromCharCodeを別の関数名に変更したソース5-1に比べて、約15%もファイルサイズの縮小に成功しています。この難読化したソースを実際に外部ファイル化して、下記の入力フォーム・サンプルで入力チェックができるようにしています。難読化しても問題なく動作することを確認してください。このフォームで使われているJavaScript(クリックするとダウンロードもしくはソースが表示されます。うまくいかない場合は、右クリック(コンテクストメニュー表示)で、リンク先をファイルに保存してください。)まだまだ、難読化のためのヒント・アイデアはあります。次のページで、これまで紹介しきれなかったその他のテクニックを一挙ご紹介します。目次:改行やタブをなくす・コメントを省く日本語メッセージを英数字だけの文字列に変換する既存メソッドのエイリアスを自作する。HTMLソース難読化用PHPライブラリ「サーバサイドSHTML」(免責事項)このホームページの内容に起因する如何なるトラブルに対しても責任を持ちえません。自己責任でご利用ください。