PHP简单高效的AES加密解密函数

    选择打赏方式

加密

/**
 * 使用AES-256-CBC加密算法加密明文字符串。
 *
 * @param string $plaintext 要加密的明文字符串。
 * @param string $key 加密密钥。
 *
 * @return string base64编码的密文,包括IV。
 */
function aesEncrypt(string $plaintext, string $key): string
{
    $cipher = "AES-256-CBC"; // 加密算法和模式
    $iv = openssl_random_pseudo_bytes(16); // 生成随机IV

    $ciphertext_raw = openssl_encrypt($plaintext, $cipher, $key, OPENSSL_RAW_DATA, $iv);

    return base64_encode($iv . $ciphertext_raw);
}

解密

/**
 * 使用AES-256-CBC解密算法解密base64编码的密文字符串。
 *
 * @param string $ciphertext 待解密的base64编码密文。
 * @param string $key 解密密钥。
 *
 * @return false|string 解密的明文字符串,或失败时false。
 */
function aesDecrypt(string $ciphertext, string $key): false|string
{
    $cipher = "AES-256-CBC"; // 解密算法和模式
    $ciphertext = base64_decode($ciphertext); // 解码base64密文
    $iv = substr($ciphertext, 0, 16); // 提取IV
    $ciphertext_raw = substr($ciphertext, 16); // 提取实际密文

    return openssl_decrypt($ciphertext_raw, $cipher, $key, OPENSSL_RAW_DATA, $iv);
}
版权声明:若无特殊注明,本文为《傲世》原创,转载请保留文章出处。
本文链接:https://www.recho.cn/261.html
如您对本文章内容有所疑问、反馈或补充,欢迎通过邮箱:admin@h2fast.cn 联系我们!
正文到此结束

热门推荐