php aes加密

<?php

namespace Aes;
error_reporting(E_ALL);
ini_set('display_errors', '1');
class Aes
{
   
/**
     * 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 : 'morefun';

$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);
    }
}



$aes = new Aes('12345678');

$str= 'hello';
$encrypted = $aes->encrypt($str);

echo '要加密的字符串:'.$str.'<br>加密后的字符串:', $encrypted, '<hr>';

$decrypted = $aes->decrypt($encrypted);

echo '要解密的字符串:', $encrypted, '<br>解密后的字符串:', $decrypted;

 

转载作品,原作者:,文章来源:https://blog.csdn.net/weixin_33727510/article/details/86018774

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年1月17日 09:50
下一篇 2022年1月19日 16:00

相关推荐

  • memcache缓存监控工具memadmin

    memcache缓存监控工具memadmin,MemAdmin是一款可视化的Memcached管理与监控工具,使用PHP开发,体积小,操作简单。

    2022年7月7日 Linux
    01630
  • php导出Excel带图片

    php导出Excel带图片,首先安装扩展库:phpoffice/phpexcel。

    2024年11月11日
    0620
  • PHP CSV导入数据库

    PHP CSV导入数据库案例

    Php 2024年8月28日
    0600
  • 华为鸿蒙开发(第1课)

    华为鸿蒙开发,需要先下载开发工具,打开官网,很容易找到IDE下载(IDE的意思是集成开发环境,是Integrated Development Environment的首字母缩写)。

    2024年1月15日 编程语言
    0840
  • PHP中如何使用OCR技术识别图片中的文字

    PHP中如何使用OCR技术识别图片中的文字,tesseract-ocr是一个流行的开源OCR引擎库,它使用C++编写。 PHP作为一种流行的服务器端语言,也提供了一些ocr识别的库和工具。可以通过tesseract-ocr识别PDF、JPEG、GIF、PNG等格式的图像。 tesseract-ocr的最大特点是它是针对多语言设计的,可以识别世界上大部分语言的文本。

    2024年11月4日
    01050
  • Thinkphp5 集成 Swoole

    Swoole是一个面向生产环境的 PHP 异步网络通信引擎。使 PHP 开发人员可以编写高性能的异步并发 TCP、UDP、Unix Socket、HTTP,WebSocket 服务。

    2022年8月26日
    01410

发表回复

登录后才能评论
分享本页
返回顶部