博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP AES cbc模式 pkcs7 128加密解密
阅读量:5010 次
发布时间:2019-06-12

本文共 1679 字,大约阅读时间需要 5 分钟。

今天在对接一个第三方接口的时候,对方需要AES CBC模式下的加密。这里简单写一个demo
class Model_Junjingbao extends Model{       private static $_partnerKey  = '6d70a09e4d0f8095';    //获取库存,更新价格信息    public static function test($productId=2780)    {               $data = array(            'productId'=>$productId,            'startTime'=>'2018-04-09',            'endTime'=>'2018-04-10'        );            $str = json_encode($data);        $xcrypt =  self::aes_cbc_pkpadding($str);                var_dump($xcrypt);//加密结果        var_dump(self::aes_cbc_pkpadding_back($xcrypt));//解密结果    }    //AES加密数据    private static function aes_cbc_pkpadding($str)    {               $block= mcrypt_get_block_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_CBC);        $pad=$block-(strlen($str)%$block);        if($pad<=$block) {            $char=chr($pad);            $str.=str_repeat($char,$pad);        }        $xcrypt = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, self::$_partnerKey, $str, MCRYPT_MODE_CBC);                     return $xcrypt;    }    //AES解密数据    private static function aes_cbc_pkpadding_back($xcrypt)    {        $string = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, self::$_partnerKey, $xcrypt, MCRYPT_MODE_CBC);        $slast = ord(substr($string, -1));        $slastc = chr($slast);        if (preg_match("/$slastc{" . $slast . "}/", $string)) {            $string = substr($string, 0, strlen($string) - $slast);            return $string;        } else {            return false;        }    }}
执行test方法

加密结果

øæ׌“j·A" OÈ[ótcÚ‡2Y‰XXÒ¦½™Ép¬p[DâFw`?oàá¹d&x4(çôl£‰¡±Ü‘I¾'ä YÖsÓd°Ý·^$’4höè¶Â÷GÂ)

解密结果

{"productId":2780,"startTime":"2018-04-09","endTime":"2018-04-10"}

原文地址:

转载于:https://www.cnblogs.com/lalalagq/p/9971623.html

你可能感兴趣的文章
defadvice中的?argv是什么
查看>>
并行执行的Service,以媒体转码成新格式为例
查看>>
虚拟机类加载机制(1)——类加载时机
查看>>
吴裕雄 python 神经网络——TensorFlow 队列操作
查看>>
iOS 把图片从Mac本地添加到iOS Simulator中
查看>>
iOS中Block的基础用法
查看>>
mac 终端 使用ftp命令
查看>>
22-reverseString-Leetcode
查看>>
Centos 开机自动联网
查看>>
cocos2dx使用lua和protobuf
查看>>
使用Spring配合Junit进行单元测试的总结
查看>>
HDOJ 5630 Rikka with Chess
查看>>
netcore2.1 在后台运行一个任务
查看>>
PostgreSQL pg_hba.conf 文件简析
查看>>
android o logcat read: unexpected EOF!
查看>>
[Scrum]2010/12/28 —— 第一天!
查看>>
ASP.NET MVC模式 温习(一)排除MVC模式误区
查看>>
Mysql的read_only 只读属性说明 (运维笔记)
查看>>
DOCKER 从入门到放弃(五)
查看>>
Python 多线程学习
查看>>