PHP 7.2版本中已经废弃了mcrypt_encrypt函数,替代方案可以使用openssl_encrypt函数或sodium_crypto_secretbox函数。其中openssl_encrypt函数采用的是OpenSSL加密算法,sodium_crypto_secretbox函数采用的是libsodium加密算法。两种算法都被认为是较为安全的加密算法,建议开发者在替换mcrypt_encrypt函数时选用其中一种。
MCRYPT_RAND); mcrypt_generic_init($td, $enc_key, $iv); $data = mcrypt_generic($td, $price); mcrypt_generic_deinit($td); mcrypt_module_close($td); $data = base64_encode($data); return $data; }
但是既然他们能替换成一样的,自然在我的项目中也能找到解决方案。通过观察是函数中使用的加密算法不一样。通过PHP的官网http://php.net/manual/en/function.openssl-get-cipher-methods.php找到了所有的加密算法。如下图: 来源PHP官网 由于我的函数中使用到的是 MCRYPT_RIJNDAEL_128 和 MCRYPT_MODE_CFB 在代码2...
就是用 openssl_encrypt替换掉mcrypt_encrypt: (值得一提的是,openssl_encrypt的用法与mcrypt_encrypt的用法略有不同,具体可以查看手册) 至此,问题算是彻底解决o(^▽^)o
在网络上搜索了很多的方法,但是大部分的都是使用mcrypt_decrypt和mcrypt_encrypt进行php端的加解密,但是众所周知的问题,这两个方法在php7.1以后将会被废弃...
将不推荐的mcrypt_cbc替换为mcrypt_encrypt 、、 我有一个老算法来编码密码,我想在PHP 7中使用 public function encriptarPass($cadena) { $extra = (strlen($cadena)%8); for ($i = $extra; $i < 8; $i++) { $cadena .= chr(8-$extra); } $key = "stack"; $iv = "stack"; return strtou...
最近想将php5.6升级到php7.2,翻阅兼容性文档,发现mcrypt已被移除,官方建议用openssl代替,原先项目用到mcrypt,于是进行替换测试。 $key ='1234567890123456';//16字节$iv ='1234567890123456';//16字节$str ='abcdefg测试密文...'; 原加密代码: $encrypted= mcrypt_encrypt(MCRYPT_RIJNDAEL_128,$key,$str, MCRYPT_...
PHP7.1废弃加密方法替换方案: mcrypt_encrypt VS openssl_encrypt 遇到的问题? 以下代码可以在PHP5.6环境下正常运行,且结果正确。 functionpriceEncode($enc_key,$price){$enc_key=base64_decode($enc_key);// PHP低版本使用,PHP7.1.0起废弃$size=mcrypt_get_block_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_ECB);...