将Mcrypt Rinjdael-128-CBC功能转换为php-7.0

我正在尝试对php进行ecrypt解密。 使用MCRYPT RINJDAEL-128-CBC由同事编写的用于加密和解密的旧函数如下。
加密</ p>

  $ key = pack('H *',$ 盐);

$ iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_CBC);
$ iv = mcrypt_create_iv($ iv_size,MCRYPT_RAND);
$ ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128,$ key,$ string,MCRYPT_MODE_CBC,$ iv);
返回base64_encode ($ iv。$ ciphertext);
}
</ code> </ pre>

Decrypt </ p>

  $ key = pack('H  *',$ salt); 
$ ciphertext_dec = base64_decode($ encodedText);
$ iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_CBC);
$ iv_dec = substr($ ciphertext_dec,0,$ iv_size);
$ ciphertext_dec = substr($ ciphertext_dec,$ iv_size);
返回mcrypt_decrypt(MCRYPT_RIJNDAEL_128,$ key,$ ciphertext_dec,MCRYPT_MODE_CBC,$ iv_dec);
}```

由于php弃用Mcrypt而且只使用Openssl,怎么会 我写了一个可以完全相同的函数吗?
</ code> </ pre>
</ div>

展开原文

原文

I'm trying to do an ecrypt decrypt on php. An old function written by a colleague for the encryption and decryption using MCRYPT RINJDAEL-128-CBC is as follows. Encrypt

        $key = pack('H*', $salt);    
        $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
        $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
        $ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $string, MCRYPT_MODE_CBC, $iv);
        return base64_encode($iv . $ciphertext);
    }

Decrypt

    $key = pack('H*', $salt);
    $ciphertext_dec = base64_decode($encodedText);
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
    $iv_dec = substr($ciphertext_dec, 0, $iv_size);
    $ciphertext_dec = substr($ciphertext_dec, $iv_size);
    return mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $ciphertext_dec, MCRYPT_MODE_CBC, $iv_dec);
}```

Due to php deprecating Mcrypt and only uses Openssl, how would I write a function that can do exactly the same?

dqsp60748
dqsp60748 不,使用openssl_cipher_iv_length()获取IV大小并使用random_bytes()作为CSPRNG。
一年多之前 回复
dqx24298
dqx24298 我还在使用mcryptiv设置吗?
一年多之前 回复
dongqiang8683
dongqiang8683 由于您使用的是AES的RINJDAEL-128,因此可以将openssl_encrypt()与“AES-128-CBC”一起使用。
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐