PHP相关系列 - 兼容JAVA的PHP加密解密DES算法

本文介绍了使用PHP和JAVA进行数据加密对接的过程。起初采用TEA算法无法得到一致的加密结果,随后转而使用DES算法,并详细展示了PHP端实现DES加密和解密的具体代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天一直折腾和JAVA对接数据加密解密的问题。

刚开始使用TEA的加密算法,但是JAVA那边和PHP端加密出来的结果不一样

只能修改算法,将算法修改成了DES的加密算法

但是PHP需要装一个mcrypt扩展,这点有点烦人

看代码吧:

	/**
	 * 加密
	 * @param string $str 字符串
	 * @param string $key 密钥
	 */
	public static function encrypt($str, $key)  {
		$block = mcrypt_get_block_size('des', 'ecb');
		$pad = $block - (strlen($str) % $block);
		$str .= str_repeat(chr($pad), $pad);
		$str = mcrypt_encrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_ECB);
		return base64_encode($str);
	}

	/**
	 * 解密
	 * @param string $str 字符串
	 * @param string $key 密钥
	 */
	public static function decrypt($str, $key) {
		$str = base64_decode($str);
		$str = mcrypt_decrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_ECB);
		$block = mcrypt_get_block_size('des', 'ecb');
		$pad = ord($str[($len = strlen($str)) - 1]);
		return substr($str, 0, strlen($str) - $pad);
	}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值