ちょっと悩んだので、メモ。
参考URLは
http://blog.spicebox.jp/labs/2009/01/php.html
http://labs.unoh.net/2007/11/php_de_crypt.html
暗号化
// 暗号化するデータ
$base64_data = base64_encode($data);
// 暗号化キー
$key = '0123456789pugya-';
// 事前処理
$resource = mcrypt_module_open(MCRYPT_BLOWFISH, '', MCRYPT_MODE_CBC, '');
// key設定
$ks = mcrypt_enc_get_key_size($resource);
$key = substr(md5($key), 0, $ks);
// 初期化ベクトル
$ivsize = mcrypt_enc_get_iv_size($resource);
$iv = substr(md5($key), 0, $ivsize);
// 暗号化処理
mcrypt_generic_init($resource, $key, $iv);
$encrypted_data = mcrypt_generic($resource, $base64_data);
mcrypt_generic_deinit($resource);
// モジュールを閉じる
mcrypt_module_close($resource);
// 暗号化データ
echo base64_encode($encrypted_data);
復号化
// 復号化するデータ
$encrypted_data = base64_decode($request_data);
// 暗号化キー
$key = '0123456789pugya-';
// 事前処理
$resource = mcrypt_module_open(MCRYPT_BLOWFISH, '', MCRYPT_MODE_CBC, '');
// key設定
$ks = mcrypt_enc_get_key_size($resource);
$key = substr(md5($key), 0, $ks);
// 初期化ベクトル
$ivsize = mcrypt_enc_get_iv_size($resource);
$iv = substr(md5($key), 0, $ivsize);
// 復号処理
mcrypt_generic_init($resource, $key, $iv);
$base64_decrypted_data = mdecrypt_generic($resource, $encrypted_data);
mcrypt_generic_deinit($resource);
// モジュールを閉じる
mcrypt_module_close($resource);
// 複合化データ
echo base64_decode($base64_decrypted_data);
0 コメント:
コメントを投稿