在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>';      //   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>';$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的方法详解的详细内容。
   
 
   