Maison >développement back-end >Problème PHP >Comment remplacer mcrypt en php

Comment remplacer mcrypt en php

藏色散人
藏色散人original
2022-10-31 09:46:321994parcourir

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.

Comment remplacer mcrypt en php

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=&#39;uK9pFn56&#39;) {
        $block = mcrypt_get_block_size(&#39;des&#39;, &#39;ecb&#39;);
        $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 = &#39;uK9pFn56&#39;)
{
    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=&#39;uK9pFn56&#39;) {
        $str = mcrypt_decrypt(MCRYPT_DES, $key, base64_decode($str), MCRYPT_MODE_ECB);
        $len = strlen($str);
        $block = mcrypt_get_block_size(&#39;des&#39;, &#39;ecb&#39;);
        $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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn