在php7.2中mcrypt已經被廢棄了。
用openssl取代它。
例如
public function desEncrypt($str,$key) { $iv = $key; $size = mcrypt_get_block_size ( MCRYPT_DES, MCRYPT_MODE_CBC ); $str = $this->_pkcs5_pad ( $str, $size ); return strtoupper( bin2hex( mcrypt_encrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_CBC, $iv ) ) ); } public function desDecrypt($str,$key) { $iv = $key; $strBin = $this->_hex2bin( strtolower( $str ) ); $str = mcrypt_decrypt( MCRYPT_DES, $key, $strBin, MCRYPT_MODE_CBC, $iv ); $str = $this->_pkcs5_unpad( $str ); return $str; } private function _pkcs5_pad($text,$block=8){ $pad = $block - (strlen($text) % $block); return $text . str_repeat(chr($pad), $pad); } private function _pkcs5_unpad($text) { $pad = ord($text{strlen($text)-1}); if ($pad > strlen($text)) return $text; if (strspn($text, chr($pad), strlen($text) - $pad) != $pad) return $text; return substr($text, 0, -1 * $pad); }
替換後:
//要改的加密 public function desEncrypt($str,$key) { // $b = openssl_get_cipher_methods(); // echo '<pre class="brush:php;toolbar:false">'; // print_r($b); $iv = $key; // $size = mcrypt_get_block_size ( MCRYPT_DES, MCRYPT_MODE_CBC ); // var_dump($size);exit; // $str = $this->_pkcs5_pad ( $str, $size ); // return strtoupper( bin2hex( mcrypt_encrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_CBC, $iv ) ) ); $data = openssl_encrypt($str,"DES-CBC",$key,OPENSSL_RAW_DATA,$iv); $data = strtolower(bin2hex($data)); return $data; } //要改的解密 public function desDecrypt($str,$key) { $iv = $key; // $strBin = $this->_hex2bin( strtolower( $str ) ); // $str = mcrypt_decrypt( MCRYPT_DES, $key, $strBin, MCRYPT_MODE_CBC, $iv ); // $str = $this->_pkcs5_unpad( $str ); // return $str; return openssl_decrypt (hex2bin($str), 'DES-CBC', $key, OPENSSL_RAW_DATA,$iv); }
這些網路上都有,在作者使用的過程中因為使用的是MCRYPT_DES,無法得知openssl對應的是那種加密方式,所以透過手冊找到了openssl_get_cipher_methods();該方法可以找出openssl支援的所有方法,進行替換即可。
echo '<pre class="brush:php;toolbar:false">'; $a = openssl_get_cipher_methods(); print_r($a); Array ( [0] => AES-128-CBC [1] => AES-128-CFB [2] => AES-128-CFB1 [3] => AES-128-CFB8 [4] => AES-128-CTR [5] => AES-128-ECB [6] => AES-128-OFB [7] => AES-128-XTS [8] => AES-192-CBC [9] => AES-192-CFB [10] => AES-192-CFB1 [11] => AES-192-CFB8 [12] => AES-192-CTR [13] => AES-192-ECB [14] => AES-192-OFB [15] => AES-256-CBC [16] => AES-256-CFB [17] => AES-256-CFB1 [18] => AES-256-CFB8 [19] => AES-256-CTR [20] => AES-256-ECB [21] => AES-256-OFB [22] => AES-256-XTS [23] => BF-CBC [24] => BF-CFB [25] => BF-ECB [26] => BF-OFB [27] => CAMELLIA-128-CBC [28] => CAMELLIA-128-CFB [29] => CAMELLIA-128-CFB1 [30] => CAMELLIA-128-CFB8 [31] => CAMELLIA-128-ECB [32] => CAMELLIA-128-OFB [33] => CAMELLIA-192-CBC [34] => CAMELLIA-192-CFB [35] => CAMELLIA-192-CFB1 [36] => CAMELLIA-192-CFB8 [37] => CAMELLIA-192-ECB [38] => CAMELLIA-192-OFB [39] => CAMELLIA-256-CBC [40] => CAMELLIA-256-CFB [41] => CAMELLIA-256-CFB1 [42] => CAMELLIA-256-CFB8 [43] => CAMELLIA-256-ECB [44] => CAMELLIA-256-OFB [45] => CAST5-CBC [46] => CAST5-CFB [47] => CAST5-ECB [48] => CAST5-OFB [49] => DES-CBC [50] => DES-CFB [51] => DES-CFB1 [52] => DES-CFB8 [53] => DES-ECB [54] => DES-EDE [55] => DES-EDE-CBC [56] => DES-EDE-CFB [57] => DES-EDE-OFB [58] => DES-EDE3 [59] => DES-EDE3-CBC [60] => DES-EDE3-CFB [61] => DES-EDE3-CFB1 [62] => DES-EDE3-CFB8 [63] => DES-EDE3-OFB [64] => DES-OFB [65] => DESX-CBC [66] => IDEA-CBC [67] => IDEA-CFB [68] => IDEA-ECB [69] => IDEA-OFB [70] => RC2-40-CBC [71] => RC2-64-CBC [72] => RC2-CBC [73] => RC2-CFB [74] => RC2-ECB [75] => RC2-OFB [76] => RC4 [77] => RC4-40 [78] => RC4-HMAC-MD5 [79] => SEED-CBC [80] => SEED-CFB [81] => SEED-ECB [82] => SEED-OFB [83] => aes-128-cbc [84] => aes-128-cfb [85] => aes-128-cfb1 [86] => aes-128-cfb8 [87] => aes-128-ctr [88] => aes-128-ecb [89] => aes-128-gcm [90] => aes-128-ofb [91] => aes-128-xts [92] => aes-192-cbc [93] => aes-192-cfb [94] => aes-192-cfb1 [95] => aes-192-cfb8 [96] => aes-192-ctr [97] => aes-192-ecb [98] => aes-192-gcm [99] => aes-192-ofb [100] => aes-256-cbc [101] => aes-256-cfb [102] => aes-256-cfb1 [103] => aes-256-cfb8 [104] => aes-256-ctr [105] => aes-256-ecb [106] => aes-256-gcm [107] => aes-256-ofb [108] => aes-256-xts [109] => bf-cbc [110] => bf-cfb [111] => bf-ecb [112] => bf-ofb [113] => camellia-128-cbc [114] => camellia-128-cfb [115] => camellia-128-cfb1 [116] => camellia-128-cfb8 [117] => camellia-128-ecb [118] => camellia-128-ofb [119] => camellia-192-cbc [120] => camellia-192-cfb [121] => camellia-192-cfb1 [122] => camellia-192-cfb8 [123] => camellia-192-ecb [124] => camellia-192-ofb [125] => camellia-256-cbc [126] => camellia-256-cfb [127] => camellia-256-cfb1 [128] => camellia-256-cfb8 [129] => camellia-256-ecb [130] => camellia-256-ofb [131] => cast5-cbc [132] => cast5-cfb [133] => cast5-ecb [134] => cast5-ofb [135] => des-cbc [136] => des-cfb [137] => des-cfb1 [138] => des-cfb8 [139] => des-ecb [140] => des-ede [141] => des-ede-cbc [142] => des-ede-cfb [143] => des-ede-ofb [144] => des-ede3 [145] => des-ede3-cbc [146] => des-ede3-cfb [147] => des-ede3-cfb1 [148] => des-ede3-cfb8 [149] => des-ede3-ofb [150] => des-ofb [151] => desx-cbc [152] => id-aes128-GCM [153] => id-aes192-GCM [154] => id-aes256-GCM [155] => idea-cbc [156] => idea-cfb [157] => idea-ecb [158] => idea-ofb [159] => rc2-40-cbc [160] => rc2-64-cbc [161] => rc2-cbc [162] => rc2-cfb [163] => rc2-ecb [164] => rc2-ofb [165] => rc4 [166] => rc4-40 [167] => rc4-hmac-md5 [168] => seed-cbc [169] => seed-cfb [170] => seed-ecb [171] => seed-ofb )
希望對您有用。
更多相關PHP7文章請上:《PHP7》教學
以上是php7.2中mcrypt轉openssl的方法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

在php5中,我们可以使用fsockopen()函数来检测TCP端口。这个函数可以用来打开一个网络连接和进行一些网络通信。但是在php7中,fsockopen()函数可能会遇到一些问题,例如无法打开端口、无法连接到服务器等。为了解决这个问题,我们可以使用socket_create()函数和socket_connect()函数来检测TCP端口。

php7.0安装mongo扩展的方法:1、创建mongodb用户组和用户;2、下载mongodb源码包,并将源码包放到“/usr/local/src/”目录下;3、进入“src/”目录;4、解压源码包;5、创建mongodb文件目录;6、将文件复制到“mongodb/”目录;7、创建mongodb配置文件并修改配置即可。

解决 PHP 7.0 中插件未显示已安装问题的方法:检查插件配置并启用插件。重新启动 PHP 以应用配置更改。检查插件文件权限,确保其正确。安装丢失的依赖项,以确保插件正常运行。如果其他步骤均失败,则重建 PHP。其他可能原因包括插件版本不兼容、加载错误版本或 PHP 配置问题。

PHP8相较于PHP7在性能、新特性和语法改进、类型系统、错误处理和扩展等方面都有一些优势和改进。然而,选择使用哪个版本要根据具体的需求和项目情况来决定。详细介绍:1、性能提升,PHP8引入了Just-in-Time(JIT)编译器,可以提高代码的执行速度;2、新特性和语法改进,PHP8支持命名参数和可选参数的声明,使得函数调用更加灵活;引入了匿名类、属性的类型声明等等。

php7.0安装部署的方法:1、到PHP官网下载与本机系统对应的安装版本;2、将下载的zip文件解压到指定目录;3、打开命令行窗口,在“E:\php7”目录下运行“php -v”命令即可。

PHP服务器环境常见的解决方法包括:确保已安装正确的PHP版本和已复制相关文件到模块目录。临时或永久禁用SELinux。检查并配置PHP.ini,确保已添加必要的扩展和进行正确设置。启动或重启PHP-FPM服务。检查DNS设置是否存在解析问题。

随着互联网技术的发展,计算机编程语言也随之不断发展和更新。PHP作为一种广泛应用于Web开发领域的编程语言,在多年的发展中经历了多个版本的更新,而最新版的PHP7又在性能和稳定性上有了巨大提升。为了能更好地应用PHP编程语言,这篇文章将介绍PHP7的下载和安装教程,供初学者参考。

本地环境:redhat6.7系统。nginx1.12.1,php7.1.0,代码使用yii2框架问题:本地的web站需要用到elasticsearch服务。当php使用本地服务器搭建的elasticsearch时,本地的负载都是正常。当我使用aws的elasticsearchservice服务时,本地服务器出现负载经常过高的情况。查看nginx和php日志,发现没有异常。系统的并发连接数也不高。这时候想到我们老大给我讲的一个strace诊断工具。调试过程:查找一个php的子进程idstrace-


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Linux新版
SublimeText3 Linux最新版