欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

php的aes加解密封装类(适应php7.2以上),可与java互解

程序员文章站 2024-03-14 17:32:16
...

在与其他公司进行数据对接的时候常常会用到加解密、签名问题,特别碰到不同语言的对接时,真的会碰到各种意想不到的问题,这里特别介绍非常常用的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;
    }
    /**
    * @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);
    }


  
}