ニュース
» 2015年12月13日 08時00分 UPDATE

スキルアップしながらも、やっぱりおもしろい成果物に:「日本人にしか読めない難読化ツール」がfunction(鮨)と返してくる

「!function(鮨){var 鮭=5,鯛=3,鯖=8;console.log(鮭,鯛,鯖)}(window);」。読めるのは読めるけれど……。

[@IT]

 年末の恒例になったアドベントカレンダーでは、エンジニアの皆さんがスキルアップを試みながらもおもしろい成果物をたくさん公開しています。その中の一つとして、「日本人にしか読めない難読化ツール」が公開されています。サンプルを見た方が分かりやすいと思いますので、まずは見てみましょう。

(function(win) {
  var hoge = 5;
  var piyo = 3;
  var fuga = 8;
  console.log(hoge, piyo, fuga);
})(window);
こんなコードが
!function(鮨){var 鮭=5,鯛=3,鯖=8;console.log(鮭,鯛,鯖)}(window);
こうなります(コードはブログで紹介されているものから引用しています)

 これは、面白法人カヤックの技術者が実施しているアドベントカレンダーの2015年12月10日分として、フロントエンドエンジニアの@butchi_yさんが公開した“オンライン寿司難読化ツール”「Sushify」によるものです。

 ブログでは、Nodeモジュールを作成したり、GitHubのリポジトリをforkしてみたりと、自身が未経験のことにチャレンジした成果だと紹介されています。

 難読化とは、主にJavaScriptのように、利用者にソースコードが見えるプログラム言語で、可読性を低くすることで実装されている内容を「分かりにくくする」テクニックです。技術をコピーされたり、処理内容や内部の実装を推測されたりすることを避ける目的で行われます。

 Sushifyは「日本人にしか読めない」とありますが、コード自体はきちんと難読化しているので、正確には「漢字は読めるけれどもコードは読みにくい」難読化ツールといえるでしょう。

 @butchi_yさんはJSCompressというオンライン難読化ツールがGitHubに公開されていることを知り、それをforkしてSushifyを作成したということです。

 もちろん、コード中で漢字を使っていますので、開発中の文字化けなどは「自己責任で」とのことです。ここからさらにforkすれば、いろいろな難読化ができそうですね。

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。