AES 简介
高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。对称加密算法也就是加密和解密用相同的密钥。
- 对称加密
加密和解密用到的密钥是相同的,这种加密方式加密速度非常快,适合经常发送数据的场合。缺点是密钥的传输比较麻烦。秘钥容易泄露。 - 非对称加密
加密和解密用的密钥是不同的,这种加密方式是用数学上的难解问题构造的,通常加密解密的速度比较慢,适合偶尔发送数据的场合。优点是密钥传输方便。常见的非对称加密算法为RSA、ECC和EIGamal。
注意:
PHP7.2删除了Mcrypt扩展,这里使用OpenSSL扩展。
<?php
/*
* AES 算法
*/
class Aes {
private $hex_iv = '00000000000000000000000000000000';
private $key = '397e2eb61307109f6e68006ebcb62f98';
function __construct($key) {
$this->key = $key;
$this->key = hash('sha256', $this->key, true);
}
/*
* 字符串加密 不写入文件
*/
public function encrypt($input)
{
$data = openssl_encrypt($input, 'AES-256-CBC', $this->key, OPENSSL_RAW_DATA, $this->hexToStr($this->hex_iv));
$data = base64_encode($data);
return $data;
}
/*
* aes 给PHP文件加密
* 写入设置文件
*/
public