/* 暗号化 */
function encrypt($value) {
$encodedValue = base64_encode($value);
$td = get_crypt_module();
$encrypted = mcrypt_generic($td, $encodedValue);
$encodedEncryptValue = base64_encode($encrypted);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return $encodedEncryptValue;
}
/* 復号化 */
function decrypt($value) {
$decodedValue = base64_decode($value);
$td = get_crypt_module();
$decrypted = mdecrypt_generic($td, $decodedValue);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
$decodedDecryptValue = base64_decode($decrypted);
return $decodedDecryptValue;
}
/* 暗号化モジュール */
function get_crypt_module() {
/* 暗号化形式を指定してモジュールオープン */
/* DESなら MCRYPT_DES */
/* AES128なら MCRYPT_RIJNDAEL_128 */
$td = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_ECB, '');
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$ks = mcrypt_enc_get_key_size($td);
/* 任意のキーを設定(文字数は暗号化形式に合わせてください) */
$key = 'hogehoge';
mcrypt_generic_init($td, $key, $iv);
return $td;
}