PHP 对接JavaDESede/CBC/PKCS5Padding

1 加密

    //加密
	public function encrypt($info,$key,$iv){
        //info->要加密的数据
        //key->要转成24进制 $pack = pack('H48', $key);
        //iv->要转成16进制  $iv = pack('H16','0000000000000000');
		// return base64_encode(openssl_encrypt($info, 'AES-256-CBC', $key, OPENSSL_RAW_DATA,$iv));
		// $data = openssl_encrypt($info, 'AES-128-CBC', $key, OPENSSL_RAW_DATA,$iv);
		$encryptMethod = "DES-EDE3-CBC";
		$size = 8;
		$info = $this->pkcs5_pad($info, $size);
		// dump($info);
		$key = str_pad($key,24,'0');
		// dump($key);
		$ivLen = openssl_cipher_iv_length($encryptMethod); //8
		// if( $this->iv == '' )
		// {
		// 	$iv = openssl_random_pseudo_bytes($ivLen);
		// }
		// else
		// {
		// 	$iv = $this->iv;
		// }
		$data = openssl_encrypt($info, $encryptMethod, $key, OPENSSL_RAW_DATA | OPENSSL_NO_PADDING, $iv);
		$data = bin2hex($data);
		return $data;
	}

2.解密

//解密
	public function decrypt($info,$key,$iv){
		$encryptMethod = "DES-EDE3-CBC";

		$encrypted = pack('H*', $info);
		$key = str_pad($key,24,'0');
		$ivLen = openssl_cipher_iv_length($encryptMethod); //8
		// if( $this->iv == '' )
		// {
		// 	$iv = openssl_random_pseudo_bytes($ivLen);
		// }
		// else
		// {
		// 	$iv = $this->iv;
		// }
		$decrypted = openssl_decrypt($encrypted, $encryptMethod, $key, OPENSSL_RAW_DATA | OPENSSL_NO_PADDING, $iv);
		$y = $this->pkcs5_unpad($decrypted);
		return $y;
	}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值