替代mcrypt_encrypt?

时间:2017-06-08 06:05:34

标签: php

根据php 7.0 mcrypt_decrypt已被弃用。

我有以下代码。

$intSize= mcrypt_get_iv_size( MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB );
$strSize = mcrypt_create_iv( $intSize, MCRYPT_RAND );
$strText = ( true == $boolTrimText ) ? trim( $strText ) : $strText;
$strResult = base64_encode( mcrypt_encrypt( MCRYPT_RIJNDAEL_256, ( string ) $strKey, ( string ) $strText, MCRYPT_MODE_ECB, $strSize) );

现在我们正在

mcrypt_encrypt(): Key of size 0 not supported by this algorithm. Only keys of sizes 16, 24 or 32 supported

修复此警告的其他选择吗?

3 个答案:

答案 0 :(得分:3)

你应该使用openssl_encrypt。链接:http://php.net/manual/en/function.openssl-encrypt.php

答案 1 :(得分:2)

如果您想加密/解密,请查看此博客文章 https://paragonie.com/white-paper/2015-secure-php-data-encryption它会以适当的方式告诉你如何做到这一点。

替代 http://php.net/manual/en/intro.openssl.php 此扩展绑定»OpenSSL库的功能,用于对称和非对称加密和解密。

答案 2 :(得分:1)

  

对变量16使用字符串长度2432$strKey

$strKey = 'YOUR_STRING'; #This string length should be 16 or 24 or 32

示例:

$strKey = '1234567890abcdef';                 #Length 16
$strKey = '1234567890abcdef76hgfrdg';         #Length 24
$strKey = '1234567890abcdef1234567890abcdef'; #Length 32

以下是mcrypt_encrypt()

的详细信息

替代解决方案: