-1
私はPHPでエンコード関数を持っていますが、デコード関数を作成しようとしましたが、うまくいきませんでした。エンコード関数のPHPデコード関数
function encode($data)
{
$password = 'EBuLTKjdCf0dmX7MQ1SrquKtvs7Fn5EW13xouUNGWwpqLWisMqe8v574HWS1UT2bkAMXC163euCz5MDm0U2GpuY';
$salt = substr(md5(mt_rand(), true), 8);
$key = md5($password . $salt, true);
$iv = md5($key . $password . $salt, true);
$ct = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv);
$unique = md5(mt_rand(), true);
return str_replace(array('+', '/'), array('-', '_'), rtrim(base64_encode($unique . $salt . $ct), '='));
}
function decode($data) {
$password = 'EBuLTKjdCf0dmX7MQ1SrquKtvs7Fn5EW13xouUNGWwpqLWisMqe8v574HWS1UT2bkAMXC163euCz5MDm0U2GpuY';
$salt = $data = base64_decode(str_replace(array('-', '_'), array('+', '/'), $data));
$ct = substr($data, 18);
md5($password . $salt, true);
$key = substr($data, 10, 8);
$iv = md5($key . $password . $salt, true);
$pt = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $ct, MCRYPT_MODE_CBC, $iv);
return trim($pt);
}
デコード関数はヌル文字列を返します。
ハッシュがこっちを見ている一つの方法 –
よりもむしろ自身の機能を開発しているhttp://php.net/manual/en/ ref.password.php phpは既にそれらをサポートしています:) – georoot
* mcrypt *は** abbandware **です。PHP 7.1で償却され、おそらくPHP 7.2で削除されました。 – Xorifelse