【php】mcrypt関数廃止の対応
問題
php7で、mcrypt関数が使えなくなってるそうですね。
代替手段は?

答え
以下は同じ結果が得られた。
opensslに変更できそう。
mcrypt_cbc()
$password = 'test345678';
$iv = 'password';                                                                                                                                            $key = substr(md5('password'), 0, 24); 
$x = bin2hex(mcrypt_cbc(MCRYPT_3DES, $key, $password, MCRYPT_ENCRYPT, $iv));
// string(32) "4356c3964077d869d1ecbcb0eecf4b8d"
mcrypt_encrypt()
$password = 'test345678';
$iv = 'password';                                                                                                                                            $key = substr(md5('password'), 0, 24); 
$x = bin2hex(mcrypt_encrypt(MCRYPT_3DES, $key, $password, MCRYPT_MODE_CBC, $iv));
// string(32) "4356c3964077d869d1ecbcb0eecf4b8d"
openssl_encrypt()
$password = 'test345678';
$iv = 'password';                                                                                                                                            $key = substr(md5('password'), 0, 24); 
$password_padded = $password;
if ($m = strlen($password_padded) % 8) {
    $password_padded .= str_repeat("\0", 8 - $m);
}
$x = bin2hex(openssl_encrypt($password_padded, 'des-ede3-cbc', $key, OPENSSL_RAW_DATA | OPENSSL_NO_PADDING, $iv));
// string(32) "4356c3964077d869d1ecbcb0eecf4b8d"
openssl関数を使うときは、ブロックサイズに合うように?8文字単位に埋める作業だけ必要。
※ php5.6 は上記の結果となったが、php5.3はopenssl関数の仕様が若干違うようで、少し異なる結果となった。