PHP7实现AES/ECB/PKCS5Padding加密的方法

class CryptAES
{
   /**
     * var string $method 加解密方法,可通过openssl_get_cipher_methods()获得
     */
    protected $method;

    /**
     * var string $secret_key 加解密的密钥
     */
    protected $secret_key;

    /**
     * var string $iv 加解密的向量,有些方法需要设置比如CBC
     */
    protected $iv;

    /**
     * var string $options (不知道怎么解释,目前设置为0没什么问题)
     */
    protected $options; 

    /**
     * 构造函数
     *
     * @param string $key 密钥
     * @param string $method 加密方式
     * @param string $iv iv向量
     * @param mixed $options 还不是很清楚 
     *
     */
    public function __construct($key, $method = 'AES-128-ECB', $iv = '', $options = 0)
    {
        // key是必须要设置的
        $this->secret_key = isset($key) ? $key : exit('key为必须项');

        $this->method = $method;

        $this->iv = $iv;

        $this->options = $options;
    }

    /**
     * 加密方法,对数据进行加密,返回加密后的数据
     *
     * @param string $data 要加密的数据
     * 
     * @return string 
     *
     */
    public function encrypt($data)
    {
        return openssl_encrypt($data, $this->method, $this->secret_key, $this->options, $this->iv);
    }

    /**
     * 解密方法,对数据进行解密,返回解密后的数据
     *
     * @param string $data 要解密的数据
     * 
     * @return string 
     *
     */
    public function decrypt($data)
    {
        return openssl_decrypt($data, $this->method, $this->secret_key, $this->options, $this->iv);
    }
}

原创文章,作者:ZUVMW,如若转载,请注明出处:http://www.wangzhanshi.com/n/6873.html

(0)
ZUVMW的头像ZUVMW
上一篇 2025年1月1日 16:34:38
下一篇 2025年1月1日 16:34:41

相关推荐

  • linux删除php7的方法

    linux删除php7的方法:首先通过“sudo apt-get autoremove php7*”命令删除php的相关包及配置;然后删除关联并清除dept列表;最后通过“dpkg…

    2025年1月1日
  • 如何开启Laravel对PHP8的支持

    PHP 8已经官方发布了! 我们一直在努力地为所有我们的库提供支持,以便使用Laravel轻松升级到PHP 8。 首先,请确保您使用的是最新版本的Laravel 6、7或8,以获得…

    php 2025年1月2日
  • CentOS7如何安装PHP7 Redis扩展

    安装扩展 注意:第一次使用非 root 用户没有成功,改用 root 用户会成功 下载扩展包,在这里找到匹配的版本,wget 下载到服务器中 解压并进入目录中 tar zxf re…

    2025年1月1日
  • Ubuntu安装php7.3

    因为我的系统没有安装PHP,所以我打算为我的系统安装一个PHP7.3我们安装PHP7.3是为了使用Laravel5.7框架,所以我们要先确定Laravel5.7依赖的扩展:Lara…

    2025年1月1日
  • PHP7类型的案例分析

    当PHP7出现了强类型,我看到了光明。我终于有信心不会再因为PHP弱类型看见bug或者不一致的情况。 我记着读过一些代码,对其中的变量该是的类型没什么想法。这个方法我该使用int类…

    php 2025年1月1日
  • PHP7函数类型限定对性能有没有影响

    PHP7函数类型限定 (1) 介绍 函数参数类型限定(包括返回值、成员属性)从PHP5开始支持的,但是支持的类型不多,PHP7做了扩展:int/string/bool/object…

    php 2025年1月1日
  • PHP7中常量可以是数组的示例分析

    常量可以是数组 define('NAMES', [     'first' &n…

    php 2025年1月1日
  • PHP7中的新特性有哪些

    1.标量类型声明 在php5中,有类名,接口,数组 和回调函数。在php7中,增加了字符串(string), 整数 (int), 浮点数 (float), 以及布尔值 (bool)…

    php 2025年1月1日
  • php7和PHP5对比新特性和性能优化有哪些区别

    1、抽象语法树( AST)   1)在 PHP5中,从 php 脚本到 opcodes 的执行的过程是: Lexing:词法扫描分析,将源文件转换成 token 流; P…

    2025年1月1日
  • ubantu如何编译安装php7

    ubuntu编译安装php7的方法:1、下载PHP7.4的源代码到Ubuntu上;2、安装PHP需要的依赖;3、配置PHP安装参数;4、通过“sudo make install”执…

    2025年1月1日

发表回复

登录后才能评论