这篇文章主要介绍了php如何替换mcrypt的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php如何替换mcrypt文章都会有所收获,下面我们一起来看看吧。
php替换mcrypt的方法:1、打开相应的php文件;2、找到原来的加密和解密代码;3、使用“openssl_encrypt”以及“openssl_decrypt”方法进行替代即可。
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
1、执行速度快。
2、具有很好的开放性和可扩展性。
3、PHP支持多种主流与非主流的数据库。
4、面向对象编程:PHP提供了类和对象。
5、版本更新速度快。
6、具有丰富的功能。
7、可伸缩性。
8、功能全面,包括图形处理、编码与解码、压缩文件处理、xml解析等。
关于“php如何替换mcrypt”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“php如何替换mcrypt”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。