php aes128加密工具,PHP AES cbc模式 pkcs7 128加密解密

今天在对接一个第三方接口的时候,对方需要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"}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值