首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用AES_CBC_PKCS5加密PHP

用AES_CBC_PKCS5加密PHP
EN

Stack Overflow用户
提问于 2021-03-31 15:32:20
回答 1查看 94关注 0票数 0

社区。

我试图访问一个API来获取一些用户的登录信息,因为我的应用程序将没有本地数据库。

负责数据库的小组向我提供了以下信息:

AES_CBC_PKCS5;

  • KEY:

  • 加密类型:

  • their_key;

  • IV: their_iv;

  • 和a GET端点。

他们还给了我一个示例用户名/密码,以及他们的加密版本.

我要这么做:

代码语言:javascript
复制
echo openssl_encrypt($string, 'aes-128-cbc', $key, 0, $iv) . '<br>';
echo openssl_encrypt($string, 'aes-192-cbc', $key, 0, $iv) . '<br>';
echo openssl_encrypt($string, 'aes-256-cbc', $key, 0, $iv) . '<br>';

我还试着把0换成OPENSSL_RAW_DATAOPENSSL_ZERO_PADDING

但我的结果都比不上他们的。

到目前为止,我还没有听说过这种加密类型。我在这里做错什么了?我需要一些指导。

谢谢,提前给你时间。

EN

回答 1

Stack Overflow用户

发布于 2021-03-31 16:11:15

您错过了PKCS5填充。下面是一个示例函数及其用法:

代码语言:javascript
复制
function pkcs5pad($text, $blocksize) {
  $pad = $blocksize - (strlen($text) % $blocksize);

  return $text . str_repeat(chr($pad), $pad);
}

# Usage in your case
$padded_string = pkcs5pad($string, 16);
$encrypted_string = openssl_encrypt($padded_string, 'AES-256-CBC', $key, OPENSSL_RAW_DATA | OPENSSL_NO_PADDING, $iv);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66890829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档