关于java 与PHP aes-128 加解密的问题

写个这个问题呢,是自己项目中遇到了!最后java 的伙伴陪同我一起解决了,所以就记录下啦!不做页面优化了!
java使用aes-128 加密与php 使用aes-128加密是不一样的,首先,java加密,不要做填充,PHP 加密是没有做填充的!

以下是PHP 7以上的加密

$key = '1234567890123456';   //16字节
$iv = '1234567890123456';    //16字节
$str = 'abcdefg测试密文......';

$str_padded = $str;
if (strlen($str_padded) % 16) {
$str_padded = str_pad($str_padded,strlen($str_padded) + 16 - strlen($str_padded) % 16, "\0");
}
$encrypted = openssl_encrypt($str_padded, 'aes-128-cbc', $key, OPENSSL_NO_PADDING , $iv);
//$encrypted = openssl_encrypt($str, 'aes-128-cbc', $key, OPENSSL_RAW_DATA, $iv);
var_dump( base64_encode($encrypted));
die;

解密是

  $decrypted = openssl_decrypt(base64_decode($json_arr), 'aes-128-cbc', $key, OPENSSL_RAW_DATA, $iv);

使用解密的偏移的函数,要使用统一的!我就不一一列举!

你可能感兴趣的:(PHP技术分类)