php怎么實(shí)現(xiàn)aes加密解密

PHP
小億
149
2024-02-02 10:17:38

在PHP中,可以使用openssl庫(kù)來(lái)實(shí)現(xiàn)AES加密和解密。以下是一個(gè)示例代碼:

function aesEncrypt($data, $key, $iv) {
    $encrypted = openssl_encrypt($data, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv);
    return base64_encode($encrypted);
}

function aesDecrypt($encryptedData, $key, $iv) {
    $decrypted = openssl_decrypt(base64_decode($encryptedData), 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv);
    return $decrypted;
}

$key = '0123456789abcdef'; // 密鑰,必須是16字節(jié)
$iv = '1234567890abcdef'; // 初始化向量,必須是16字節(jié)

$plainText = 'Hello, World!';

$encryptedData = aesEncrypt($plainText, $key, $iv);
echo 'Encrypted: ' . $encryptedData . "\n";

$decryptedData = aesDecrypt($encryptedData, $key, $iv);
echo 'Decrypted: ' . $decryptedData . "\n";

注意,以上代碼中的密鑰和初始化向量(IV)都必須是16字節(jié)長(zhǎng)度的字符串。在實(shí)際使用中,請(qǐng)根據(jù)情況自行生成安全的密鑰和IV。

此外,請(qǐng)確保PHP的openssl擴(kuò)展已啟用,可以通過檢查php.ini文件或運(yùn)行phpinfo()函數(shù)來(lái)確認(rèn)。

0