php如何实现pkcs7,php-AES/CBC/PKCS7Padding加密的实现

php5模式

https://github.com/gunnzhao/AES-CBC-PKCS7Padding-/blob/master/AesCrypter.php

public function encrypt($orig_data) {

$encrypter = mcrypt_module_open($this->algorithm, ‘‘,

$this->mode, ‘‘);

$orig_data = $this->pkcs7padding(

$orig_data, mcrypt_enc_get_block_size($encrypter)

);

mcrypt_generic_init($encrypter, $this->key, substr($this->key, 0, 16));

$ciphertext = mcrypt_generic($encrypter, $orig_data);

mcrypt_generic_deinit($encrypter);

mcrypt_module_close($encrypter);

return base64_encode($ciphertext);

}

php7模式:

$cipher = "aes-256-cbc";

$key = hash(‘sha256‘, [email protected] , true);

$encrypted = openssl_encrypt(json_encode($data), ‘AES-256-CBC‘, $key, 1, substr($key, 0, 16));

$encrypt_msg = base64_encode($encrypted);

注意:加密后的字节码使用Base64转换成字符串

加密模式: CBC

填充模式: PKCS7Padding

加密密钥: 用户密钥 SHA256 的32 bytes

AES IV : 加密密钥的前 16 bytes

Base 64: Base64.DEFAULT

加密过程:

加密:padding->CBC加密->base64编码

解密:base64解码->CBC解密->unpadding

AES加密结果基准测试:

用户密钥:

909ed2d5fcf907c79fb9aa341a98febb65291c39

明文:

AABBCC测试数据

密文:

noMrTUS2A0YTcYaaPQSy9peqF6Mv/faMkI4yYHDvKjw=

原文:https://www.cnblogs.com/akidongzi/p/9608022.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值