Blowfishメモ
PHP October 24th, 2007
忘れないようにPEARのCrypt_Blowfishの使い方メモ。1.0.1をベースにしているので、factoryから呼び出すようになっているはずのインスタンスの生成は最新版とはちょっと違うかも。
<?php
require_once 'Crypt/Blowfish.php';
$key = 'secret key';
$bf = new Crypt_Blowfish($key);
//
暗号化しよう
$enc = $bf->encrypt('this is my secret');
//16進数にして持ち運び可能にしよう
$hex = bin2hex($enc);
//復号化しよう
$hex2bin = pack("H*", $hex);
$plain = $bf->decrypt($hex2bin);
if(PEAR::isError($plain)){
echo $plain->getMessage();
exit;
}
echo trim($plain) . "\n";
?>
これはなにかというと、Blowfishで暗号化されたテキストデータはバイナリ形式になるようなのでXML化したりDBに格納したりするときに面倒だから、bin2he関数でいちど16進数に変換して、復号化するときにその逆をやっている例。可逆暗号化方式なので、SSLが使えない環境で通信したりなんかするときに便利かも。もっとも、オーバーヘッドがあるので使うならそのあたりを考慮しないといけないけれど。