PHP Screw はオープンソースソフトウェアで、ロイヤリティフリー(無償)で使えます。
% wget "http://prdownloads.sourceforge.net/php-screw/php_screw-1.5.tgz?download" % tar -xvf php_screw-1.5.tgz % cd php_screw-1.5 % phpize
% vi my_screw.h
変更前)
short pm9screw_mycryptkey[] = {
11152, 368, 192, 1281, 62
};
変更後)あくまで例です
short pm9screw_mycryptkey[] = {
123, 456, 789, 987, 654, 321
};
% ./configure % make
% sudo cp modules/php_screw.so /usr/lib/php5/modules/
% cd tools % make % sudo cp -p screw /usr/bin
extension=php_screw.so
最後に apacheを再起動して、インストール完了。
% vi test.php
<?php echo date("Y-m-d H:i:s")."\n"; ?>
暗号化
% screw test.php
↓
Success Crypting(screw.php) と出れば成功。
暗号化されたか確認
% less test.php
⇒ バイナリファイルになっていればOK。
バックアップとして、同ディレクトリに test.php.screw が作成されるので必ず削除します。
ただし、オリジナルは削除したらダメ。念のため…
% for f in `find /path/to/script/dir -type f -name "*.php"`; do screw $f rm -f $f.screw done
xargs コマンドとの組み合わせは、うまくいかなかった。。
なお、screw で暗号化したサーバーと暗号化したスクリプトを実行するサーバーは同一でないと駄目っぽい。
サーバAで暗号化したスクリプトを screw がインストールされたサーバーBでは実行できないという事。
ただし、暗号化SEEDキー(pm9screw_mycryptkey)を同じにして双方のサーバーにインストールした場合はこの限りではないかも。(未確認)