>  기사  >  백엔드 개발  >  PHP에서 mcrypt를 대체하는 방법

PHP에서 mcrypt를 대체하는 방법

藏色散人
藏色散人원래의
2022-10-31 09:46:321849검색

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부터 중단되었습니다. 원래 프로젝트(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=
rrree

************************복호화**************** **********

<?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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.