PHP7:mcrypt_cbc不起作用

时间:2017-12-06 12:29:27

标签: php php-7 mcrypt

请帮助解决问题。

如何让它在php 7上运行?

function decr($string) {
    $key="";
    $iv = mcrypt_create_iv(mcrypt_get_block_size (MCRYPT_CAST_32, MCRYPT_MODE_CFB), MCRYPT_DEV_RANDOM);
    $string = base64_decode(trim($string));
    $dec =  mcrypt_cbc (MCRYPT_TripleDES, $key, $string, MCRYPT_DECRYPT, $iv);
    return $dec;
}

1 个答案:

答案 0 :(得分:2)

我最近在应用中遇到此问题,因为以下原因我没有使用mcrypt_encrypt()

  

警告   自PHP 7.1.0起,此函数已被弃用。非常不鼓励依赖此功能。

我是这样用openssl(php-openssl)做的:

function _encrypt($data){
    $initialVector = openssl_random_pseudo_bytes(16, $secure);
    $secretKey = '<SECRET_KEY>'; // string : 16 length
    return  openssl_encrypt($data, "aes-128-cbc", $secretKey, OPENSSL_RAW_DATA, $initialVector);
}


function _decrypt($data){
    $initialVector = openssl_random_pseudo_bytes(16, $secure);
    $secretKey = '<SECRET_KEY>'; // string : 16 length
    return  openssl_decrypt($data, "aes-128-cbc", $secretKey, OPENSSL_RAW_DATA, $initialVector);
}

注意:以这种方式生成的初始向量/密钥只是例如