从mcrypt_decrypt到openssl_decrypt

时间:2017-05-19 15:40:56

标签: php openssl mcrypt php-openssl

我有一个问题,我想用open_ssl decrypt替换对mcrypt的函数调用。但输出混合在一起:

这是mcrypt实现(效果很好):

$decrypted = trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_128,
                         substr(sha1($this->secretKey), 0, 32),
                         base64_decode($encrypted),
                         MCRYPT_MODE_CBC,
                         base64_decode($iv)), "\0..\32");
                         var_dump($decrypted);

我把它翻译成:

        var_dump( 
        trim(
            openssl_decrypt(
                $encrypted,
                'AES-256-CBC',
                substr(sha1($this->secretKey), 0, 32), 
                OPENSSL_ZERO_PADDING, $iv) 
            ),"\0..\32");

但它会导致错误:

  

openssl_decrypt():传递的IV长度为24个字节,长度超过   16选择密码预期,截断

混合输出:

  

'米%XLJ   J> | lgSke":" 2017-05-19T05:48:37-07:00""收据":

混合的第一个键值对。

我可能错过了任何建议或任何选项?

谢谢你!

0 个答案:

没有答案