Home > Backend Development > PHP Tutorial > How to use PHP functions for encryption and decryption?

How to use PHP functions for encryption and decryption?

PHPz
Release: 2023-07-24 09:02:01
Original
1691 people have browsed it

How to use PHP functions for encryption and decryption?

In the modern Internet environment, data security is particularly important. In order to protect important information, we often need to encrypt and decrypt sensitive data to prevent it from being maliciously obtained. PHP, as a commonly used server-side scripting language, provides various functions to perform encryption and decryption operations. This article will introduce how to use PHP functions for encryption and decryption, and provide corresponding code examples.

1. Basic concepts of encryption and decryption

Encryption and decryption are a pair of reciprocal operations, that is, converting plaintext into ciphertext through an encryption algorithm, and then using the same or related algorithm to convert the ciphertext into ciphertext. Text is converted back to clear text. In this process, encryption algorithms are key.

In PHP, commonly used encryption algorithms include symmetric encryption and asymmetric encryption.

  1. Symmetric encryption: Use the same key for encryption and decryption. Commonly used symmetric encryption algorithms include DES, AES, etc. Symmetric encryption algorithms are fast and suitable for encrypting and decrypting large amounts of data. The sample code is as follows:
$key = 'myKey';
$data = 'Hello, world!';

// 加密
$encryptedData = openssl_encrypt($data, 'AES-128-ECB', $key);

// 解密
$decryptedData = openssl_decrypt($encryptedData, 'AES-128-ECB', $key);

echo $encryptedData; // 输出:cnBEVmgzcmxaY3FFc3BlQXpPZGpjdz09
echo $decryptedData; // 输出:Hello, world!
Copy after login
  1. Asymmetric encryption: Use a pair of keys for encryption and decryption, one of which is the public key and the other is the private key. Commonly used asymmetric encryption algorithms include RSA. Asymmetric encryption algorithms have high security and are suitable for scenarios such as data exchange and certificate signing. The sample code is as follows:
// 生成密钥对
$keyPair = openssl_pkey_new(array(
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA
));

// 提取私钥
openssl_pkey_export($keyPair, $privateKey);

// 提取公钥
$publicKey = openssl_pkey_get_details($keyPair)["key"];

$data = 'Hello, world!';

// 加密
openssl_public_encrypt($data, $encryptedData, $publicKey);

// 解密
openssl_private_decrypt($encryptedData, $decryptedData, $privateKey);

echo base64_encode($encryptedData); // 输出:QaWFCDzF2HM6zLQ+...
echo $decryptedData; // 输出:Hello, world!
Copy after login

2. More application scenarios

In addition to the encryption and decryption of ordinary strings, PHP's encryption functions can also be applied to the following scenarios.

  1. Password encryption: When users register and log in to the system, passwords usually need to be encrypted and stored to ensure the security of user data. The sample code is as follows:
$password = '123456';

// 加密
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);

// 验证密码
if (password_verify($password, $hashedPassword)) {
    echo '密码正确';
} else {
    echo '密码错误';
}
Copy after login
  1. URL encryption: Sometimes sensitive data needs to be passed to other pages. In order to prevent the data from being maliciously intercepted, the encryption function can be used to encrypt URL parameters. The sample code is as follows:
$data = 'Hello, world!';

// 加密
$encryptedData = urlencode(base64_encode($data));

// 解密
$decryptedData = base64_decode(urldecode($encryptedData));

echo $encryptedData; // 输出:SGVsbG8sIHdvcmxkIQ%3D%3D
echo $decryptedData; // 输出:Hello, world!
Copy after login

The above are some common scenarios and sample codes for using PHP functions for encryption and decryption. In practical applications, we need to choose appropriate encryption algorithms and functions according to specific needs to improve data security.

Summary:

This article introduces how to use PHP functions for encryption and decryption, and provides relevant code examples. By learning and understanding these cryptographic functions, we can better protect sensitive data and improve system security. Of course, the selection of encryption algorithms and functions should be based on actual needs and security requirements. Hope this article is helpful to you!

The above is the detailed content of How to use PHP functions for encryption and decryption?. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template