使用 openssl_encrypt() 的 PHP AES 加密没有得到预期的输出

问题描述 投票:0回答:0

我正在尝试使用以下 AES 选项加密字符串:

  • 模式(CBC)
  • 填充(pkcs7)
  • 键位(128/8)

我正在尝试使用

17eDP2M0ir6nf7H0
 的 ivKey 加密值 
hNeoNeuYKOkm0dbo

使用以下代码:

$data = '17eDP2M0ir6nf7H0';
$key = '0123456789abcdef';
$iv = 'hNeoNeuYKOkm0dbo';

$block_size = openssl_cipher_iv_length('aes-128-cbc');
$padding_length = $block_size - (strlen($data) % $block_size);
$padding = str_repeat(chr($padding_length), $padding_length);
$data .= $padding;

$encrypted = openssl_encrypt($data, 'aes-128-cbc', $key, OPENSSL_RAW_DATA|OPENSSL_PKCS1_PADDING, $iv);

echo base64_encode($iv . $encrypted);

我期待

Ujg0uN58k57Ke9MfmzRMxA==
的输出,但我得到的是
aE5lb05ldVlLT2ttMGRib2vroCr7MEHRawBSuDsezEd5gu90vqHduRnDyF3nOYYD5sUyWI/nFnxvh+D45nJMjw==

的输出

我看不出哪里错了

php aes php-openssl
© www.soinside.com 2019 - 2024. All rights reserved.