欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

aes 128 php

江奕云1年前8瀏覽0評論

AES(Advanced Encryption Standard)是一種對稱加密算法,使用相同的密鑰對數據進行加密和解密,其中128代表加密塊大小為128位。在PHP中,可以使用OpenSSL函數庫提供的AES加密和解密操作,下面將介紹如何使用AES 128模式進行加密和解密。

在進行AES加密和解密操作前,需要先安裝并啟用OpenSSL擴展。可以通過以下代碼檢查OpenSSL擴展是否已啟用:

<?php
if (extension_loaded('openssl')) {
echo "OpenSSL is enabled";
} else {
echo "OpenSSL is not enabled";
}
?>

如果輸出結果為“OpenSSL is enabled”,則證明已經安裝并啟用了OpenSSL擴展。

接下來,我們可以使用OpenSSL函數庫提供的openssl_encrypt()openssl_decrypt()函數進行AES加密和解密操作。例如,以下代碼演示了如何使用AES 128 CBC模式進行加密和解密:

<?php
$plaintext = 'This is a secret message.';
$key = 'mysecretkey12345';
$iv = random_bytes(16); // 生成隨機的初始向量
// 使用AES 128 CBC模式進行加密
$ciphertext = openssl_encrypt($plaintext, 'AES-128-CBC', $key, OPENSSL_ZERO_PADDING, $iv);
// 使用AES 128 CBC模式進行解密
$decrypted = openssl_decrypt($ciphertext, 'AES-128-CBC', $key, OPENSSL_ZERO_PADDING, $iv);
echo "Plaintext: " . $plaintext . "<br>";
echo "Cipher text: " . $ciphertext . "<br>";
echo "Decrypted text: " . $decrypted;
?>

在上面的示例中,$plaintext是要加密的明文,$key是用來加密和解密的密鑰,$iv是初始向量。使用random_bytes()函數可以生成隨機的初始向量。

使用openssl_encrypt()函數進行加密時,第一個參數是要加密的明文,第二個參數是加密算法和模式,第三個參數是密鑰,第四個參數是填充模式,第五個參數是初始向量。在AES 128 CBC模式中,填充模式應該為OPENSSL_ZERO_PADDING。

使用openssl_decrypt()函數進行解密時,第一個參數是要解密的密文,其它參數與加密操作相同。解密后得到的$decrypted應該與$plaintext相同。

AES加密和解密操作可以用于保護敏感信息,例如密碼、銀行賬號等。在實際應用中,需要注意密鑰的安全性和保密性,以及初始向量的隨機性。