php aes-128-cbc怎么做
-
要使用PHP对AES-128-CBC进行加密和解密,您可以按照以下步骤进行操作:
1. 安装并配置OpenSSL扩展。请确保您的PHP环境已安装OpenSSL扩展,并且在php.ini文件中启用了相关配置。您可以通过运行phpinfo()函数来查看您的PHP环境是否已正确配置。
2. 创建加密函数。首先,您需要编写一个用于加密数据的函数。例如,您可以创建一个名为encryptAES()的函数,参数为明文、密钥和IV向量。在函数内部,您可以使用openssl_encrypt()函数来使用AES-128-CBC算法对数据进行加密。
以下是一个示例代码供参考:
“`php
function encryptAES($data, $key, $iv) {
$encryptedData = openssl_encrypt($data, ‘AES-128-CBC’, $key, OPENSSL_RAW_DATA, $iv);
return base64_encode($encryptedData);
}
“`在这个示例中,我们首先使用openssl_encrypt()函数对数据进行加密,并指定了AES-128-CBC算法。然后,我们使用base64_encode()函数对加密后的数据进行编码,以便于传输和存储。
3. 创建解密函数。类似地,您还需要编写一个解密函数,用于对加密数据进行解密。例如,您可以创建一个名为decryptAES()的函数,参数为密文、密钥和IV向量。在函数内部,您可以使用openssl_decrypt()函数对数据进行解密。
以下是一个示例代码供参考:
“`php
function decryptAES($encryptedData, $key, $iv) {
$encryptedData = base64_decode($encryptedData);
return openssl_decrypt($encryptedData, ‘AES-128-CBC’, $key, OPENSSL_RAW_DATA, $iv);
}
“`在这个示例中,我们首先使用base64_decode()函数对密文进行解码,然后使用openssl_decrypt()函数对解码后的数据进行解密。
4. 使用示例。现在,您可以在您的代码中使用这些函数来加密和解密数据。首先,您需要生成一个随机的密钥和IV向量。然后,您可以使用encryptAES()函数来加密数据,使用decryptAES()函数来解密数据。
以下是一个使用示例:
“`php
$key = openssl_random_pseudo_bytes(16); // 生成随机密钥
$iv = openssl_random_pseudo_bytes(16); // 生成随机IV向量$data = ‘Hello, World!’;
$encryptedData = encryptAES($data, $key, $iv);
echo ‘Encrypted Data: ‘ . $encryptedData . “\n”;$decryptedData = decryptAES($encryptedData, $key, $iv);
echo ‘Decrypted Data: ‘ . $decryptedData . “\n”;
“`在这个示例中,我们首先生成了一个随机的16字节密钥和IV向量。然后,我们使用encryptAES()函数对数据进行加密,并使用decryptAES()函数对加密后的数据进行解密。最后,我们输出解密后的数据。
希望这能帮助您使用PHP来对AES-128-CBC进行加密和解密。如果您还有任何问题,请随时提问。
2年前 -
使用PHP进行AES-128-CBC加密和解密需要以下步骤:
1. 安装OpenSSL扩展:
使用AES-128-CBC算法需要安装OpenSSL扩展。在PHP中,可以通过以下命令安装OpenSSL扩展:
“`
sudo apt-get install php7.4-openssl //根据自己的PHP版本安装对应的扩展
“`2. 生成随机的初始化向量(IV):
在AES-128-CBC加密中,需要一个16字节的随机初始化向量。可以使用`openssl_random_pseudo_bytes()`函数生成一个随机的初始化向量:
“`php
$iv = openssl_random_pseudo_bytes(16);
“`3. 设置加密密钥:
AES-128-CBC需要一个16字节的加密密钥。可以设置一个字符串作为密钥,并通过`openssl_digest()`函数将其转换为16字节的密钥:
“`php
$key = “your-secret-key”;
$key = openssl_digest($key, ‘SHA256’, true);
“`4. 进行加密:
使用`openssl_encrypt()`函数进行加密。将明文、加密算法、加密密钥和初始化向量传递给函数,进行加密操作:
“`php
$plaintext = “your-plaintext”;
$ciphertext = openssl_encrypt($plaintext, ‘AES-128-CBC’, $key, OPENSSL_RAW_DATA, $iv);
“`
加密后的密文存储在 `$ciphertext`变量中。5. 进行解密:
使用`openssl_decrypt()`函数进行解密。将密文、加密算法、加密密钥和初始化向量传递给函数,进行解密操作:
“`php
$plaintext = openssl_decrypt($ciphertext, ‘AES-128-CBC’, $key, OPENSSL_RAW_DATA, $iv);
“`
解密后的明文存储在 `$plaintext`变量中。需要注意的是,在加密和解密过程中,使用相同的加密密钥和初始化向量是非常重要的。此外,可以根据需求对加密算法、密钥和初始化向量进行自定义设置。
2年前 -
要在PHP中使用AES-128-CBC加密算法,你可以按照以下方法进行操作:
1. 安装OpenSSL扩展:首先确保你的PHP已经安装了OpenSSL扩展,因为AES-128-CBC算法需要使用OpenSSL库。你可以使用以下命令来检查是否已经安装了OpenSSL扩展:
“`shell
php -i | grep openssl
“`如果你看到类似下面的输出,说明已经安装了OpenSSL扩展:
“`
openssl
OpenSSL support => enabled
“`如果没有安装,请根据你的操作系统和PHP版本安装对应的OpenSSL扩展。
2. 创建加密函数:使用`openssl_encrypt`函数进行加密。以下是一个简单的示例:
“`php
function encrypt($data, $key, $iv) {
$encrypted = openssl_encrypt($data, ‘AES-128-CBC’, $key, OPENSSL_RAW_DATA, $iv);
return base64_encode($encrypted);
}
“``$data`是要加密的数据,`$key`是密钥,`$iv`是初始化向量(IV)。函数通过调用`openssl_encrypt`进行加密,并使用`base64_encode`将加密后的数据转换为可读的字符串。
3. 创建解密函数:使用`openssl_decrypt`函数进行解密。以下是一个简单的示例:
“`php
function decrypt($encrypted, $key, $iv) {
$encrypted = base64_decode($encrypted);
return openssl_decrypt($encrypted, ‘AES-128-CBC’, $key, OPENSSL_RAW_DATA, $iv);
}
“``$encrypted`是加密后的数据,`$key`是密钥,`$iv`是初始化向量(IV)。函数首先将加密后的数据使用`base64_decode`解码,然后调用`openssl_decrypt`进行解密操作。
4. 测试加密和解密:可以使用以下代码对加密和解密函数进行测试:
“`php
$key = ‘your_key’;
$iv = ‘your_iv’;$data = ‘Hello, AES-128-CBC’;
$encrypted = encrypt($data, $key, $iv);
echo ‘Encrypted: ‘ . $encrypted . “\n”;$decrypted = decrypt($encrypted, $key, $iv);
echo ‘Decrypted: ‘ . $decrypted . “\n”;
“`将以上代码保存为一个PHP文件,并运行,你应该能够看到加密和解密后的结果。
总结:
使用PHP进行AES-128-CBC加密算法的步骤包括安装OpenSSL扩展、创建加密和解密函数,并进行测试。在实际应用中,你需要根据自己的需求设置密钥和初始化向量,并根据需要进行数据加密和解密操作。2年前