AES-128-CBC-Pkcs7Padding加密PHP实例

简介: AES-128-CBC-Pkcs7Padding加密PHP实例

大概

AES-128-CBC-Pkcs7Padding加密PHP实例:

编码base64,模式cbc,填充Pkcs7Padding,位数128位,

输入格式base64,输出格式string,字符集utf-8,

密钥T3lUf3t4ddHzSx8U,偏移量cdccB3uiWDu7mcxw

(例如17350886066加密后+eupvMFtSc0E7veMi+XCgQ==)

(www.mklab.cn/utils/aes)

(www.lddgo.net/encrypt/aes)

01ebd755782e4c909dad0843d3544acf.jpeg

AES介绍

1.AES简介:

AES即高级加密标准(Advanced Encryption Standard),是美国NIST在2001年发布的,旨在代替DES称为广泛使用的标准。AES是一种对称分组密码算法。

2.AES的分组长度和密钥长度:

AES的明文分组长度为128位(16字节),密钥长度可以为128位(16字节)、192位(24字节)、256位(32字节),根据密钥长度的不同,AES分为AES-128、AES-192、AES-256三种。

AES-PHP服务代码

代码块介绍

openssl_encrypt(data,data, data,method, password,password, password,options, $iv)

  • 参数说明:
  • $data 加密明文
  • $method 加密方法: DES-ECB

DES-CBC

DES-CTR

DES-OFB

DES-CFB

  • $passwd 加密密钥[密码]
  • $options 数据格式选项(可选)【选项有:】 0

OPENSSL_RAW_DATA=1

OPENSSL_ZERO_PADDING=2

OPENSSL_NO_PADDING=3

  • $iv 密初始化向量(可选)

如果method为DES-ECB,则iv无需填写

具体代码

<?php
namespace app\service;
class AesService
{
    public static ?AesService $_instance = null;
    /*密钥,22个字符*/
    protected string $key = 'T3lUf3t4ddHzSx8U';
    /*向量,8个或10个字符*/
    protected string $iv = 'cdccB3uiWDu7mcxw';
    /**
     * @return AesService|mixed
     */
    public static function instance(): ?AesService
    {
        if (!static::$_instance) static::$_instance = new self();
        return static::$_instance;
    }
    public function setkey(string $key): static
    {
        $this->key = $key;
        return $this;
    }
    public function getkey(): string
    {
        return $this->key;
    }
    public function getiv(): string
    {
        return $this->iv;
    }
    /**
     * 加密
     * AES/CBC/PKCS7Padding
     * AES加密:(https://www.mklab.cn/utils/aes)
     * 编码base64,模式CBC,填充Pkcs7Padding,位数128位,输入格式base64,输出格式string,
     * 字符集utf-8,密钥T3lUf3t4ddHzSx8U,偏移量cdccB3uiWDu7mcxw
     * (例如17350886066加密后+eupvMFtSc0E7veMi+XCgQ==)
     * (https://www.lddgo.net/encrypt/aes)
     *
     * @param boolean $status 是否加密
     *
     * @return string 处理过的数据
     */
    public function encrypt($data, bool $status = true): string
    {
        if (is_array($data)) $data = json_encode($data);
        $key = $this->getkey();
        $iv  = $this->getiv();
        if ($status) return base64_encode(openssl_encrypt($data, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv));
        return $data;
    }
    /**
     * 解密
     *
     * @return string 加密的字符串不是完整的会返回空字符串值
     */
    public function decrypt($data, bool $status = true): string
    {
        $key = $this->getkey();
        $iv  = $this->getiv();
        if ($status) return openssl_decrypt(base64_decode($data), 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv);
        return $data;
    }
}

AES-调用代码

AES加密

const API_AES_KEY           = 'T3lUf3t4ddHzSx8U'; $mobileAesEncrypt          = AesService::instance()->setkey(API_AES_KEY)->encrypt('17350886066');

AES解密

const API_AES_KEY          = 'T3lUf3t4ddHzSx8U'; $mobileAesDecrypt         = AesService::instance()->setkey(API_AES_KEY)->decrypt('+eupvMFtSc0E7veMi+XCgQ==');


目录
相关文章
|
18天前
|
Java PHP 数据安全/隐私保护
php和Java配合 aes
php和Java配合 aes加密
13 1
|
19天前
|
搜索推荐 算法 PHP
详尽分享记6种php加密解密方法
详尽分享记6种php加密解密方法
43 0
|
1月前
|
算法 PHP 数据安全/隐私保护
PHP中的数据加密技术及应用
在Web开发中,数据安全始终是一个至关重要的问题。本文将介绍PHP中常用的数据加密技术,包括对称加密算法、非对称加密算法和哈希算法的原理和应用。通过深入了解这些加密技术,开发人员可以更好地保护用户数据和提高系统的安全性。
15 0
|
2月前
|
存储 安全 算法
【PHP开发专栏】PHP加密与解密技术
【4月更文挑战第29天】本文探讨了PHP中的加密解密技术,涵盖基本概念如对称加密(AES、DES)、非对称加密(RSA、DSA)和哈希函数(MD5、SHA)。PHP提供内置函数支持加密,如`openssl_encrypt`、`openssl_pkey_new`、`hash`和`password_hash`。文章强调了最佳实践,如使用安全密钥、密钥管理和HTTPS,并给出用户注册登录的加密实战示例。通过理解和应用这些技术,开发者能增强Web应用的数据安全性。
|
2月前
|
PHP 数据安全/隐私保护
PHP在线加密系统网站源码
这个是sg的加密,免费可用(目前)并不会收费 源码说明:下载直接上传即可
40 1
PHP在线加密系统网站源码
|
2月前
|
算法 PHP 数据安全/隐私保护
【实战】PHP代码逆向工具,轻松还原goto加密语句的神器!
`goto解密工具`是一款针对PHP的在线神器,能有效解密和还原goto加密代码,提升代码可读性和可维护性。支持单文件及50M压缩包一键解密,提供全效解决方案。通过实际案例展示了解密报错和理解复杂代码的能力,是PHP开发者解决goto难题的得力助手。立即体验:[在线PHP解密大师](https://copy.kaidala.com/dala/goto/index.html)。
53 1
|
2月前
|
安全 PHP 开发工具
php代码加密 php-screw-plus
php代码加密 php-screw-plus
59 0
|
安全 PHP 数据安全/隐私保护
PHP6种加密方法介绍
PHP6种加密方法
1332 0
|
18天前
|
NoSQL 关系型数据库 MySQL
linux服务器重启php,nginx,redis,mysql命令
linux服务器重启php,nginx,redis,mysql命令
26 1
|
2月前
|
关系型数据库 MySQL PHP