mcrypt ist in PHP7.2 veraltet.
Ersetzen Sie es durch openssl.
Zum Beispiel nach dem Ersetzen von
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); }
Diese sind online verfügbar und der Autor verwendet MCRYPT_DES, daher ist es unmöglich zu wissen, welche Openssl entspricht der Verschlüsselungsmethode, daher habe ich Openssl_get_cipher_methods() im Handbuch gefunden. Diese Methode kann alle von Openssl unterstützten Methoden finden und ersetzen.
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 )
Ich hoffe, es ist nützlich für Sie.
Weitere verwandte PHP7-Artikel finden Sie unter: „PHP7“ Tutorial
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Methode zum Konvertieren von mcrypt in openSL in PHP7.2. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!