JavaScriptを難読化、圧縮するツール
/packer/
http://dean.edwards.name/packer/
Javascript::Packer
オフラインで利用できるPerlバージョンはこちら。
GitHub – leejo/javascript-packer-perl: CPAN Module Javascript::Packer
https://github.com/leejo/javascript-packer-perl
使い方
#!/usr/bin/perl
use JavaScript::Packer;
my $packer = JavaScript::Packer->init();
my $uncompressed = 'console.log("JavaScript::Packer");';
my $compressed = $packer->minify( \$uncompressed, { compress => 'obfuscate' } );
print $compressed;
出力結果
eval(function(p,a,c,k,e,r){e=String;if('0'.replace(0,e)==0){while(c--)r[e(c)]=k[c];k=[function(e){return r[e]||e}];e=function(){return'[0-3]'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('2.3("0::1");',[],4,'JavaScript|Packer|console|log'.split('|'),0,{}))
圧縮用途で使う場合はcompress
をbest
とするのが良いと思います。
(このサンプルでは元のスクリプトよりもサイズが大きくなっていますが。)