PHP7 AES-128-CBC ZeroPadding加密

发布于 2022-09-13 00:08:53 字数 474 浏览 30 评论 0

$body=array(
    "groupID"=>1348
);
$json_str = json_encode($body);
$key = '1234567812345678';
$iv = '1234567812345678'; 
$encrypted = openssl_encrypt($json_str,'AES-128-CBC',$key,OPENSSL_ZERO_PADDING,$iv);

这样的写法有什么问题么?
结果是:
HP7a0w0Pt9vF5PoaKFijhg==
似乎结果和网站的不一致。。。

下面是参考网站
http://tool.chacuo.net/cryptaes
网站的结果是
HP7a0w0Pt9vF5PoaKFijhgB6pvRsuY8IDFDE75tsiBQ=

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

温暖的光 2022-09-20 00:08:53
function addPKCS7Padding($source, $cipher = MCRYPT_RIJNDAEL_128, $mode = MCRYPT_MODE_CBC)
{
    $source = trim($source);
    $block = mcrypt_get_block_size($cipher, $mode);
    $pad = $block - (strlen($source) % $block);
    if ($pad <= $block) {
        $char = chr($pad);
        $source .= str_repeat($char, $pad);
    }
    return $source;
}

AES 是按数据块大小(128/192/256)对待加密内容进行分块处理的,会经常出现最后一段数据长度不足的场景,这时就需要填充数据长度到加密算法对应的数据块大小。

OpenSSL 默认模式使用 PKCS7 对数据进行填充

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文