With the continuous development of information technology, encryption technology is increasingly used in various fields. Among them, AES symmetric encryption technology is one of the most commonly used encryption algorithms at present. It can ensure the security of data and has a wide range of applications. This article will introduce how to use PHP to implement AES symmetric encryption technology.
1. What is AES symmetric encryption technology?
AES is the abbreviation of Advanced Encryption Standard (Advanced Encryption Standard) and is one of the most widely used symmetric encryption algorithms currently. Symmetric encryption means that the same key is used for encryption and decryption. The principle is to perform complex XOR operations, shifts and substitutions on the plaintext and the key to obtain the ciphertext. Without the key, decryption is not possible.
2. Using AES symmetric encryption in PHP
1. Load openssl extension and generate key
To use AES symmetric encryption in PHP, you need to use openssl extension. This extension can be turned on in the php.ini file, or you can load it in your code using the following code:
extension=php_openssl.dll
Generating the keys required for encryption and decryption requires the openssl_random_pseudo_bytes() function, as shown below:
$key = openssl_random_pseudo_bytes(16);
This function generates a 16-byte random number for encryption and decryption.
2. Encryption and decryption
Next, we can use openssl_encrypt() and openssl_decrypt() functions to encrypt and decrypt data.
The following is a code example using the openssl_encrypt() function for encryption:
$data = 'hello world'; $cipher = 'AES-128-CBC'; $ivlen = openssl_cipher_iv_length($cipher); $iv = openssl_random_pseudo_bytes($ivlen); $encrypted_data = openssl_encrypt($data, $cipher, $key, OPENSSL_RAW_DATA, $iv); $encrypted_data = base64_encode($encrypted_data . ':' . $iv);
Explain the code:
Note: IV needs to be added before the encrypted ciphertext for use in decryption.
The following is a code example for decryption using the openssl_decrypt() function:
$encrypted_data = base64_decode($encrypted_data); $parts = explode(':', $encrypted_data); $decrypted_data = openssl_decrypt($parts[0], $cipher, $key, OPENSSL_RAW_DATA, $parts[1]);
Explain the code:
3. Code Example
The following is the complete encryption and decryption sample code:
$key = openssl_random_pseudo_bytes(16); $data = 'hello world'; $cipher = 'AES-128-CBC'; $ivlen = openssl_cipher_iv_length($cipher); $iv = openssl_random_pseudo_bytes($ivlen); $encrypted_data = openssl_encrypt($data, $cipher, $key, OPENSSL_RAW_DATA, $iv); $encrypted_data = base64_encode($encrypted_data . ':' . $iv); $encrypted_data = base64_decode($encrypted_data); $parts = explode(':', $encrypted_data); $decrypted_data = openssl_decrypt($parts[0], $cipher, $key, OPENSSL_RAW_DATA, $parts[1]); echo $decrypted_data;
After running the code, the output is:
hello world
4. Summary
This article introduces the method of using PHP to implement AES symmetric encryption technology, including key generation, encryption, decryption and other operations. The AES symmetric encryption algorithm is one of the most widely used encryption algorithms currently. It has high security and a wide range of applications. I hope this article can help you understand and apply AES symmetric encryption technology.
The above is the detailed content of PHP implements AES symmetric encryption technology. For more information, please follow other related articles on the PHP Chinese website!