底下這段程式,在 php7.0 環境下可以正常執行,但到了 php7.2 以上之後,因為mcrypt_encrypt 函數被棄用了(is deprecated),以至無法執行。
既然 php 都放棄它了,我也不想再裝回去,那麼,請教各位先進,這要如何改寫成適用於 php7.2 以上的版本呢?
謝謝各位幫忙。
<?php
// 本程式適用於 php 7.0
// ==== 副程式,主要是把資料長度補足 ===== //
function pkcs5_pad($text, $blocksize) {
$pad = $blocksize - (strlen($text) % $blocksize);
return $text . str_repeat(chr($pad), $pad);
}
$sKey = hex2bin("3080ACCF6CCDC24D1752AB2DFDFAE06E");
$iv = base64_decode("Dt8lyToo17X/XkXaQvihuA==");
$aes_data = "AA123456781234";
$encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $sKey, pkcs5_pad($aes_data, 16), MCRYPT_MODE_CBC, $iv);
$aes_data_str = base64_encode($encrypted);
echo '加密後:'.$aes_data_str; // 答案:V0ClP78eHRxhbGANtdFFVg==
?>