首頁 > 後端開發 > PHP問題 > php 怎麼替換mcrypt

php 怎麼替換mcrypt

藏色散人
發布: 2023-03-17 10:32:01
原創
1993 人瀏覽過

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

php 怎麼替換mcrypt

本教學操作環境: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=&#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=
登入後複製

**********************解密****************** ************

/**
 * 原解密方法
 * @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
登入後複製

推薦學習:《PHP影片教學

以上是php 怎麼替換mcrypt的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板