openssl_decrypt(),PKCS7
时间: 2024-03-22 21:36:18 浏览: 179
openssl中pkcs7数据结构及编解码
openssl_decrypt()函数是PHP中用于解密数据的函数,它使用指定的算法和密钥对数据进行解密。在使用openssl_decrypt()函数时,可以指定填充方式来解密数据。PKCS7是一种常用的填充方式,它会在数据的末尾添加相应数量的字节,以满足加密算法的块大小要求。
根据你提供的引用内容,你遇到了一个问题,即使用openssl_decrypt()函数解密数据时返回false。这可能是因为在加密时使用了不同的填充方式。在openssl_encrypt()函数中,默认的填充方式是PKCS7,而在mcrypt_decrypt()函数中,默认的填充方式是补0填充。
为了解决这个问题,你可以在openssl_decrypt()函数中指定填充方式为OPENSSL_ZERO_PADDING,以与mcrypt_decrypt()函数的填充方式保持一致。这样,你就可以成功解密数据了。
以下是一个示例代码,演示了如何使用openssl_decrypt()函数解密数据并指定填充方式为OPENSSL_ZERO_PADDING[^1][^2]:
```php
<?php
$aes_key = '123456ABCD!@#$%^';
$aes_iv = '123456ABCD!@#$%^';
$content = "FSaxaPsYOrt063lkbocFnQ==";
$decrypted = openssl_decrypt($content, 'AES-128-CBC', $aes_key, OPENSSL_ZERO_PADDING, $aes_iv);
echo rtrim($decrypted, "\0")."\n"; // 成功
```
阅读全文