Maison >développement back-end >Problème PHP >Comment remplacer mcrypt en php
Comment remplacer mcrypt par php : 1. Ouvrez le fichier php correspondant ; 2. Recherchez le code de cryptage et de décryptage d'origine ; 3. Utilisez les méthodes "openssl_encrypt" et "openssl_decrypt" pour le remplacer.
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 8.1, ordinateur Dell G3.
php Comment remplacer mcrypt ?
Alternative de cryptage et de décryptage Mcrypt dans php7.4
Description du problème
Les fonctions mcrypt_encrypt et mcrypt_decrypt ont été abandonnées depuis PHP 7.1.0. Les fonctions mcrypt_encrypt et mcrypt_decrypt utilisées dans le projet d'origine (php5.6) sont en php7. 1 Lorsqu'il est utilisé dans des environnements ultérieurs, il vous indiquera que la fonction est introuvable et que vous devez utiliser openssl_encrypt et openssl_decrypt à la place.
Solution
************************Cryptage********************* **********
<?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=rrree
************************Décryptage************** **********
<?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
Apprentissage recommandé : "Tutoriel vidéo PHP"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!