前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP实现AES加密解密

PHP实现AES加密解密

原创
作者头像
Action
修改2021-09-07 14:38:18
5.9K0
修改2021-09-07 14:38:18
举报
文章被收录于专栏:WEB开发~

主要函数

openssl_encrypt

说明

代码语言:txt
复制
openssl_encrypt(    
    string $data,    
    string $cipher_algo,    
    string $passphrase,    
    int $options = 0,    
    string $iv = "",    
    string &$tag = null,    
    string $aad = "",    
    int $tag_length = 16
): string|false

以指定的方式和 key 加密数据,返回原始或 base64 编码后的字符串。

参数

data

待加密的明文信息数据。

cipher_algo

密码学方式。openssl_get_cipher_methods() 可获取有效密码方式列表。

passphrase

口令(passphrase)。 若 passphrase 比预期长度短,将静默用 NUL 填充; 若比预期长度更长,将静默截断。

options

options 是以下标记的按位或: OPENSSL_RAW_DATA 、 OPENSSL_ZERO_PADDING。

iv

非 NULL 的初始化向量。

tag

使用 AEAD 密码模式(GCM 或 CCM)时传引用的验证标签。

aad

附加的验证数据。

tag_length

验证 tag 的长度。GCM 模式时,它的范围是 4 到 16。

返回值

成功时返回加密后的字符串, 或者在失败时返回 false。

PHP实现代码

代码语言:txt
复制
<?php
/**
 * Aes  对称加密
 */
class Aes {
    const KEY = '123456';
    const IV = ''; //IV参数必须是16位。
    /**
     * 加密
     */
    public function encrypts($data)
    {
        //php7.1 以上版本用法
        return base64_encode(openssl_encrypt($data, "AES-128-ECB", self::KEY, OPENSSL_RAW_DATA));
    }
    /**
     * 解密
     */
    public function decrypts($data)
    {
        //php7.1 以上版本用法
        return openssl_decrypt(base64_decode($data), "AES-128-ECB", self::KEY, OPENSSL_RAW_DATA);
    }
}

$aesModel = new Aes();
$str = 'hello world';
//加密
$encryptData = $aesModel->encrypts($str);
print($encryptData);
print('<hr>');
//解密
$decryptData = $aesModel->decrypts($encryptData);
print_r($decryptData);

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 主要函数
    • 参数
      • 返回值
      • PHP实现代码
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档