怎样才能创建自己的网站,自己电脑做网站用备案,简约网站模板,重庆在线开放课程平台一、引言
随着互联网的普及#xff0c;数据安全问题越来越受到人们的关注。在众多加密算法中#xff0c;AES#xff08;Advanced Encryption Standard#xff09;因其高效、安全的特点被广泛应用。本文将通过PHP语言#xff0c;为大家展示一个简单的AES加解密示例#x…
一、引言
随着互联网的普及数据安全问题越来越受到人们的关注。在众多加密算法中AESAdvanced Encryption Standard因其高效、安全的特点被广泛应用。本文将通过PHP语言为大家展示一个简单的AES加解密示例帮助你快速掌握加密解密技术。
二、准备工作
在进行AES加解密之前你需要确保你的PHP环境已经安装了openssl扩展。你可以通过在终端中输入以下命令来检查
php -m | grep openssl
如果输出了openssl则说明你的PHP环境已经安装了openssl扩展。
三、PHP AES加解密示例
加密
首先我们需要使用AES算法对数据进行加密。以下是一个简单的加密示例
?php
function encryptData($data, $key) {$iv openssl_random_pseudo_bytes(16); // 生成随机初始化向量$encrypted openssl_encrypt($data, AES-256-CBC, $key, OPENSSL_RAW_DATA, $iv); // 加密数据$mac hash_hmac(sha256, $encrypted, $key, true); // 计算消息认证码$encoded base64_encode($iv . $mac . $encrypted); // 对初始化向量、消息认证码和加密数据进行编码return $encoded;
}$key your-secret-key; // 替换为你自己的密钥
$data Hello, world!; // 需要加密的数据
$encryptedData encryptData($data, $key);
echo 加密后的数据 . $encryptedData;
?
解密
接下来我们需要对加密后的数据进行解密。以下是一个简单的解密示例
?php
function decryptData($encryptedData, $key) {$decoded base64_decode($encryptedData); // 对编码的加密数据进行解码$iv substr($decoded, 0, 16); // 提取初始化向量$mac substr($decoded, 16, 32); // 提取消息认证码$encrypted substr($decoded, 48); // 提取加密数据$decrypted openssl_decrypt($encrypted, AES-256-CBC, $key, OPENSSL_RAW_DATA, $iv); // 解密数据$calculatedMac hash_hmac(sha256, $encrypted, $key, true); // 重新计算消息认证码if (hash_equals($mac, $calculatedMac)) { // 比较消息认证码是否一致return $decrypted; // 如果一致返回解密后的数据} else {return false; // 如果不一致返回false表示解密失败}
}$key your-secret-key; // 替换为你自己的密钥
$encryptedData 加密后的数据; // 替换为你要解密的数据
$decryptedData decryptData($encryptedData, $key);
if ($decryptedData ! false) {echo 解密后的数据 . $decryptedData;
} else {echo 解密失败;
}
?