Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menggantikan mcrypt dalam php

Bagaimana untuk menggantikan mcrypt dalam php

藏色散人
藏色散人asal
2022-10-31 09:46:321991semak imbas

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.

Bagaimana untuk menggantikan mcrypt dalam php

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=&#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=
<?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=

******************** **Penyahsulitan****** *****************

/**
 * 原解密方法
 * @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
/**
 * openssl_encrypt解密替代方法
 * @param $str
 * @param string $key
 * @return string
 */
function des_decrypt($str, $key = &#39;uK9pFn56&#39;)
{
    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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Apakah kaedah statik phpArtikel seterusnya:Apakah kaedah statik php