PHPAEScbc模式pkcs7128加密解密今天在对接⼀个第三⽅接⼝的时候,对⽅需要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)
{
php实例代码解密$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âF w`?oàá¹d&x4(çôl£‰¡±Ü‘I¾'ä YÖsÓd°Ý·^$’4höè¶Â÷GÂ)
解密结果
{"productId":2780,"startTime":"2018-04-09","endTime":"2018-04-10"}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论