php的aes加解密封装类(适应php7.2以上),可与java互解在与其他公司进⾏数据对接的时候常常会⽤到加解密、签名问题,特别碰到不同语⾔的对接时,真的会碰到各种意想不到的问题,这⾥特别介绍⾮常常⽤的aes加解密⽅法,并进⾏了简单的封装,⽅便同⾏更加专注于业务开发
代码如下:
<?php
namespace aes;
class aes {
/**
*
* @param string $string 需要加密的字符串
* @param string $key 密钥
* @return string
*/ public static function encrypt($string, $key)
{
$key = substr(openssl_digest(openssl_digest($key, 'sha1', true), 'sha1', true), 0, 16);
// openssl_encrypt 加密不同Mcrypt,对秘钥长度要求,超出16加密结果不变
$data = openssl_encrypt($string, 'AES-128-ECB', $key, OPENSSL_RAW_DATA);
$data = base64_encode($data);
return $data;
国外java php}
/**
* @param string $string 需要解密的字符串
* @param string $key 密钥
* @return string
*/
public static function decrypt($string, $key)
{
$key = substr(openssl_digest(openssl_digest($key, 'sha1', true), 'sha1', true), 0, 16);
$encrypted = base64_decode($string);
return openssl_decrypt($encrypted, 'aes-128-ecb', $key, OPENSSL_RAW_DATA);
}
}