配列データを暗号化して保存しておき、必要時には取り出して配列データにする方法を探していた。
暗号化関数は色々と見つかって試してみると、文字列を暗号化する、複合化して文字列にするなど文字列の暗号化機能であった。配列データを暗号化・複合化する機能はなかったので、配列データを文字列に変換して、その後暗号化することにした。複合する場合も文字列に一度複合して、文字列を配列データに変換することにした。このやり方を忘れないように次のとおりメモしておく。
<?php require_once 'Crypt/Blowfish.php'; // 暗号化キー $key = 'hoge'; //暗号化するデータ $data = array('name'=>'小泉純一郎','id'=>-1,'order'=>60); //配列を文字列に変換 $st = serialize($data); // 暗号化処理 $blowfish = new Crypt_Blowfish($key); $enc = $blowfish->encrypt($st); //復号化 $dec = $blowfish->decrypt($enc); $ndec = trim($dec); //前後のスペースを消す //複合された文字列を配列に変換 $unst = unserialize($ndec); echo '<PRE>'; print_r($unst); echo '<PRE>'; ?>
これを実行すると次の結果になった。
Array
(
[name] => 小泉純一郎
[id] => -1
[order] => 60
)