求助`openssl_encrypt`怎么去正确的补零?

2017-06-13 16:20:30 +08:00
 LiHaiWordGe

在加密之前用gzcompress进行数据压缩,压缩过后然后进行数据加密?

因为要直接替换mcrypt_encrypt,为保证加密数据的一致性,要给openssl_encrypt 加密的数据补零?

或者有没有 自动补零的方法?用OPENSSL_ZERO_PADDING 并没有自动补零~~。

   $plain = "hello world~";
   $plain = gzcompress($plain);
   $plain_padded = $plain;
   if (strlen($plain_padded) % 8) {
       //与 mcrypt 保持一致在末尾补零
       $plain_padded = str_pad($plain_padded, strlen($plain_padded) + 8 - strlen($plain_padded) % 8, "\0");
   }
   $crypted = openssl_encrypt($plain_padded, "AES-128-CBC", $key, OPENSSL_ZERO_PADDING, $iv);

这样加密$crypted总是返回 false?

求助大神怎么去处理这块~

谢谢

2901 次点击
所在节点    PHP
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/368119

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX