下面土嘎嘎小编分享示例代码,展示如何在 PHP 中使用 AES 加密算法对字符串进行加密和解密:
〓〓php代码如下:〓〓
<?php
function encrypt($plaintext, $key) {
$iv = random_bytes(16);
$ciphertext = openssl_encrypt($plaintext, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
$encrypted = base64_encode($iv . $ciphertext);
return $encrypted;
}
function decrypt($encrypted, $key) {
$data = base64_decode($encrypted);
$iv = substr($data, 0, 16);
$ciphertext = substr($data, 16);
$plaintext = openssl_decrypt($ciphertext, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
return $plaintext;
}
// 示例使用
$plaintext = "Hello, World!";
$key = "MySecretKey123";
$encrypted = encrypt($plaintext, $key);
echo "Encrypted: " . $encrypted . "\n";
$decrypted = decrypt($encrypted, $key);
echo "Decrypted: " . $decrypted . "\n";
?>
在上面给出的示例中, encrypt() 函数将明文和密钥作为输入参数,并利用 OpenSSL 库的 AES-256-CBC 加密算法对明文进行加密。然后,使用 base64 编码将初始化向量(IV)和密文组合起来,生成最终的加密结果。
decrypt() 函数接收加密后的字符串和密钥作为输入,并进行相应的解码和解密操作。首先,从编码后的字符串中提取 IV 和密文。然后,使用相同的密钥和 IV 对密文进行解密,得到最终的明文结果。
推荐大家使用土嘎嘎开发的 免费PHP在线加密系统 :http://www.tugaga.com/tool/phpjiami/
土嘎嘎技术网友情提示:这只是一个简单的示例,并不考虑其他安全性因素,如密钥管理、输入验证等。在实际使用中,你需要更全面地评估和采取适当的安全措施来保护敏感数据和加密算法的安全性。