php使用AES进行加密解密操作

以下是使用php8.2版本的代码,低版本请取消类型化属性(7.4开始支持类型化属性), 请确认版本后修改掉

<?php

namespace YourNamespacce;

/**
 * Aes 加密解密
 */
class AesCryptService
{
    /**
     * AES 加密密钥
     *
     * @var string
     */
    public string $aesKey = "";

    /**
     * 加密方式
     *
     * @var string
     */
    public string $method = "AES-128-ECB";

    /**
     * Aes 加密
     *
     * @param string $string 要加密的字符
     * @return string
     */
    final public function cryptEncode(string $string): string
    {
        // 使用openssl进行AES-256-ECB加密
        $encrypted = openssl_encrypt($string, $this->method, base64_decode($this->aesKey), OPENSSL_RAW_DATA);
        // 对加密后的数据进行Base64编码,便于显示和传输
        return base64_encode($encrypted);
    }
    
    /**
     * Aes 解密
     *
     * @param string $string  解密的字符
     *
     * @return string
     */
    final public function cryptDecode(string $string): string
    {
        return openssl_decrypt(base64_decode($string), $this->method, base64_decode($this->aesKey), OPENSSL_RAW_DATA);
    }

    /**
     * 设置密钥
     *
     * @param string $aesKey
     * @return $this
     */
    final public function setAesKey(string $aesKey): AesCryptService
    {
        $this->aesKey = $aesKey;
        return $this;
    }

    /**
     * 设置加密方式
     *
     * @param string $method
     * @return $this
     */
    final public function setMethod(string $method): AesCryptService
    {
        $this->method = $method;
        return $this;
    }
}


php使用AES进行加密解密操作
https://lysowc.cn/archives/1719406762753
作者
sora
发布于
2024年06月26日
许可协议