php取代mcrypt的方法:1、開啟對應的php檔案;2、找到原始的加密和解密程式碼;3、使用「openssl_encrypt」以及「openssl_decrypt」方法來替換即可。
本教學操作環境:windows7系統、PHP8.1版、Dell G3電腦。
php 怎麼替換mcrypt?
php7.4中mcrypt加解密替代方案
問題描述
mcrypt_encrypt以及mcrypt_decrypt函數自PHP 7.1.0 起已廢棄,原來專案(php5. 6)中使用的mcrypt_encrypt和mcrypt_decrypt函數,在php7.1以及之後的環境中使用時會提示函數找不到,需要使用openssl_encrypt以及openssl_decrypt進行替代。
解決方案
********************加密*************** ********
<?php /** * 原加密方法方法 * @param $str * @param string $key * @return string */ function des_encrypt($str, $key='uK9pFn56') { $block = mcrypt_get_block_size('des', 'ecb'); $pad = $block - (strlen($str) % $block); $str .= str_repeat(chr($pad), $pad); return base64_encode(mcrypt_encrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_ECB)); } $str = "123123"; var_dump(des_encrypt($str)); //加密结果:BKG4i231OB0=
<?php /** * openssl_encrypt加密替代方法 * @param $str * @param string $key * @return string */ function des_encrypt($str, $key = 'uK9pFn56') { return base64_encode(openssl_encrypt($str, "DES-ECB", $key, OPENSSL_RAW_DATA, "")); } $str = "123123"; var_dump(des_encrypt($str)); //加密结果:BKG4i231OB0=
**********************解密****************** ************
/** * 原解密方法 * @param $str * @param string $key * @return string */ function des_decrypt($str, $key='uK9pFn56') { $str = mcrypt_decrypt(MCRYPT_DES, $key, base64_decode($str), MCRYPT_MODE_ECB); $len = strlen($str); $block = mcrypt_get_block_size('des', 'ecb'); $pad = ord($str[$len - 1]); return substr($str, 0, $len - $pad); } var_dump(des_decrypt("BKG4i231OB0=")); //解密结果:123123
/** * openssl_encrypt解密替代方法 * @param $str * @param string $key * @return string */ function des_decrypt($str, $key = 'uK9pFn56') { return openssl_decrypt(base64_decode($str), "DES-ECB", $key, OPENSSL_RAW_DATA, ""); } var_dump(des_decrypt("BKG4i231OB0=")); //解密结果:123123
推薦學習:《PHP影片教學》
以上是php 怎麼替換mcrypt的詳細內容。更多資訊請關注PHP中文網其他相關文章!