1. AES加密介绍
AES(Advanced Encryption Standard)高级加密标准,是目前使用最广泛的加密解密算法之一,也是国际标准。
它是一种对称加密算法,也就是加密和解密使用同一个密钥。AES算法的密钥长度有多种,最常用的是128位密钥。
2. PHP实现的AES加密类
PHP作为一种流行的Web编程语言,提供了对AES加密的支持。这里介绍一种使用PHP实现的AES加密类:
class AES
{
private $key;
private $iv;
public function __construct($key, $iv)
{
$this->key = $key;
$this->iv = $iv;
}
public function encrypt($data)
{
$data = openssl_encrypt($data, 'aes-128-cbc', $this->key, OPENSSL_RAW_DATA, $this->iv);
return base64_encode($data);
}
public function decrypt($data)
{
$data = base64_decode($data);
return openssl_decrypt($data, 'aes-128-cbc', $this->key, OPENSSL_RAW_DATA, $this->iv);
}
}
AES类的构造函数需要传入一个密钥和一个偏移量。它的encrypt和decrypt方法分别用于加密和解密数据。这里使用了PHP内置的openssl模块提供的AES加密函数。
3. AES加密类的用法示例
下面的示例演示了如何使用上述AES类进行加密和解密:
$key = 'abcdefghijklmnopqrstuvwxyz123456'; // 128位密钥
$iv = '1234567890123456'; // 16位偏移量
$aes = new AES($key, $iv);
$data = 'Hello, World!';
$encrypted = $aes->encrypt($data);
echo '加密后的数据:' . $encrypted . PHP_EOL;
$decrypted = $aes->decrypt($encrypted);
echo '解密后的数据:' . $decrypted . PHP_EOL;
在以上示例中,我们使用了一个128位的密钥和一个16位的偏移量进行加密和解密。加密后的数据使用Base64编码,解密前需要进行解码。
运行上述代码,输出如下:
加密后的数据:7yfHPzIk2Z12x21YePFMlw==
解密后的数据:Hello, World!
4. 总结
通过本文的介绍,我们了解了AES加密算法的基本原理和PHP实现的AES加密类的用法。使用AES加密可以更好地保护敏感数据,有效避免数据被恶意攻击者窃取。