php 怎麼替換mcrypt

2022-10-31 10:00:25

php替換mcrypt的方法:1、開啟相應的php檔案;2、找到原來的加密和解密程式碼;3、使用「openssl_encrypt」以及「openssl_decrypt」方法進行替代即可。

php入門到就業線上直播課:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API偵錯工具:

本教學操作環境: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 怎麼替換mcrypt的詳細內容,更多請關注TW511.COM其它相關文章!