Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menggantikan mcrypt dalam php
Cara menggantikan mcrypt dengan php: 1. Buka fail php yang sepadan 2. Cari kod penyulitan dan penyahsulitan asal 3. Gunakan kaedah "openssl_encrypt" dan "openssl_decrypt" untuk menggantikannya.
Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 8.1, komputer Dell G3.
Bagaimana untuk menggantikan mcrypt dengan php?
Alternatif penyulitan dan penyahsulitan Mcrypt dalam php7.4
Penerangan masalah
Fungsi mcrypt_encrypt dan mcrypt_decrypt telah ditinggalkan sejak PHP 7.1.0. php5. 6) Fungsi mcrypt_encrypt dan mcrypt_decrypt yang digunakan dalam persekitaran php7.1 dan kemudiannya akan menggesa bahawa fungsi itu tidak ditemui dan anda perlu menggunakan openssl_encrypt dan openssl_decrypt sebaliknya.
Penyelesaian
************************Penyulitan************ ****** ************
<?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=
******************** **Penyahsulitan****** *****************
/** * 原解密方法 * @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
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Bagaimana untuk menggantikan mcrypt dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!