ホームページ > バックエンド開発 > PHPの問題 > PHPでmcryptを置き換える方法

PHPでmcryptを置き換える方法

藏色散人
リリース: 2023-03-17 10:32:01
オリジナル
1993 人が閲覧しました

mcrypt を php に置き換える方法: 1. 対応する php ファイルを開きます; 2. 元の暗号化コードと復号化コードを見つけます; 3. 「openssl_encrypt」および「openssl_decrypt」メソッドを使用して置き換えます。

PHPでmcryptを置き換える方法

このチュートリアルの動作環境: Windows 7 システム、PHP バージョン 8.1、Dell G3 コンピューター。

php mcrypt を置き換える方法は?

php7.4 での Mcrypt 暗号化と復号化の代替手段

問題の説明

mcrypt_encrypt 関数と mcrypt_decrypt 関数は、PHP 7.1.0 以降廃止されました。元のプロジェクト ( 6) php7.1 以降の環境で使用される mcrypt_encrypt および mcrypt_decrypt 関数は、関数が見つからないため、代わりに 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=
ログイン後にコピー
rree

************************復号化*********** * ************

<?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
ログイン後にコピー

推奨学習: 「PHP ビデオ チュートリアル

以上がPHPでmcryptを置き換える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート