PHP实现AES对称加密

简介: PHP实现AES对称加密

1.mcrypt 函数php的7以上已经废弃该方法,所以这里的aes是基于openssl_encrypt实现。代码如下

class Aes
 {
    public $key = '';
    public $iv = '';
    public function __construct( $config )
    {
        foreach ( $config as $k => $v ) {
            $this->$k = $v;
        }
    }
    //加密
    public function aesEn( $data ) {
        return  base64_encode( openssl_encrypt( $data, $this->method, $this->key, OPENSSL_RAW_DATA, $this->iv ) );
    }
    //解密
    public function aesDe( $data ) {
        return openssl_decrypt( base64_decode( $data ),  $this->method, $this->key, OPENSSL_RAW_DATA, $this->iv );
    }
}
$config = [
    'key' =>  'mkeymkeymkeymkey', //加密key
    'iv'  =>  str_repeat("\0", 16),//保证偏移量为16位,这里是16位空字符串,也可以和key一样16字符串,还可以是变化的,比如md5成16位原文,substr(md5("haha"),8,16),变化的需要保证同一个字符串加解密的iv保持一致。
    'method'  => 'AES-128-CBC' //加密方式  # AES-256-CBC等
];
//openssl_encrypt的第四个参数为1或者OPENSSL_RAW_DATA时填充方式为pks5padding或者pks7padding的结果一样,其他参数值待验证
$obj = new Aes( $config );
//加密数据
$res = $obj->aesEn( 'haha' );
echo $res;
echo '<hr>';
//解密
echo $obj->aesDe( $res );


相关文章
|
18天前
|
Linux 数据安全/隐私保护 Windows
aes加密在linux下会生成随机key的解决办法
aes加密在linux下会生成随机key的解决办法
23 2
|
18天前
|
PHP 数据安全/隐私保护
在PHP中使用AES进行加密和解密
在PHP中使用AES进行加密和解密
|
18天前
|
存储 算法 安全
【加密算法】AES对称加密算法简介
【加密算法】AES对称加密算法简介
|
18天前
|
存储 安全 算法
【PHP开发专栏】PHP加密与解密技术
【4月更文挑战第29天】本文探讨了PHP中的加密解密技术,涵盖基本概念如对称加密(AES、DES)、非对称加密(RSA、DSA)和哈希函数(MD5、SHA)。PHP提供内置函数支持加密,如`openssl_encrypt`、`openssl_pkey_new`、`hash`和`password_hash`。文章强调了最佳实践,如使用安全密钥、密钥管理和HTTPS,并给出用户注册登录的加密实战示例。通过理解和应用这些技术,开发者能增强Web应用的数据安全性。
|
18天前
|
存储 算法 安全
加密解密AES(证件号、手机号)
加密解密AES(证件号、手机号)
|
18天前
|
安全 PHP 开发工具
php代码加密 php-screw-plus
php代码加密 php-screw-plus
43 0
|
18天前
|
算法 PHP 数据安全/隐私保护
【实战】PHP代码逆向工具,轻松还原goto加密语句的神器!
`goto解密工具`是一款针对PHP的在线神器,能有效解密和还原goto加密代码,提升代码可读性和可维护性。支持单文件及50M压缩包一键解密,提供全效解决方案。通过实际案例展示了解密报错和理解复杂代码的能力,是PHP开发者解决goto难题的得力助手。立即体验:[在线PHP解密大师](https://copy.kaidala.com/dala/goto/index.html)。
35 1
|
18天前
|
PHP 数据安全/隐私保护
PHP在线加密系统网站源码
这个是sg的加密,免费可用(目前)并不会收费 源码说明:下载直接上传即可
26 1
PHP在线加密系统网站源码
|
18天前
|
算法 Java 数据安全/隐私保护
java MD5 32位加密
java MD5 32位加密
23 0
|
18天前
|
Java 数据安全/隐私保护
Java实现最电话号码的简单加密源码
Java实现最电话号码的简单加密源码
23 0