分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

php-AES/CBC/PKCS7Padding加密的实现

发布时间:2023-09-06 02:13责任编辑:胡小海关键词:暂无标签

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‘, ??‘@parkingwang.com‘ , 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=

php-AES/CBC/PKCS7Padding加密的实现

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

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved