这篇文章主要介绍了兼容PHP和Java的des加密解密代码分享,有的时候做项目对接的时候,可能你用的是Php加密的,而对方用的是java写的,对接的过程中就发现机加密后的内容对方解密不了,这是因为Php跟java在实现这个算法的时候有差别,要想正确加密解密需要两边都做下处理:
const IV = "12345678";//iv的长度要根据加密方式和模式来定,aes-128-cbc偏移量的是16位
/**
* 加密
* @param $input
* @param $key
* @return string
* @throws
*/
public static function encryptForDES($input, $key)
{
$data = openssl_encrypt($input, 'DES-CBC', $key, OPENSSL_RAW_DATA, self::IV);
$data = base64_encode($data);
return $data;
}
/**
* 解密
* @param $input
* @param $key
* @return string
* @throws
*/
public static function decryptForDES($input, $key)
{
$data = openssl_decrypt(base64_decode($input), 'DES-CBC', $key, OPENSSL_RAW_DATA, self::IV);
return $data;
}