iT邦幫忙

0

php7.2 之後 , mcrypt_encrypt() 如何改寫?

底下這段程式,在 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==
?>
froce iT邦大師 1 級 ‧ 2020-08-27 20:27:36 檢舉
openssl_encrypt
ckp6250 iT邦好手 1 級 ‧ 2020-08-27 21:15:48 檢舉
十分感恩,
測試成功了。

尚未有邦友回答

立即登入回答