Home  >  Article  >  Backend Development  >  PHP data encryption and decryption operations

PHP data encryption and decryption operations

PHPz
PHPzOriginal
2023-06-30 13:00:083339browse

PHP, as a popular server-side scripting language, needs to perform data encryption and decryption to ensure data security when processing sensitive data. This article will introduce how PHP performs data encryption and decryption.

  1. Use symmetric encryption algorithm
    Symmetric encryption algorithm uses the same key for encryption and decryption. In PHP, symmetric encryption and decryption operations can be performed using the AES (Advanced Encryption Standard) algorithm. The specific steps are as follows:

(1) Generate AES key:

$key = random_bytes(32);  // 生成一个32字节长的随机密钥

(2) Encrypt data:

$data = "敏感数据";
$encrypted = openssl_encrypt($data, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);  // 加密数据
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('AES-256-CBC'));  // 生成一个随机的初始向量

(3) Decrypt data:

$decrypted = openssl_decrypt($encrypted, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);  // 解密数据
  1. Use asymmetric encryption algorithm
    The asymmetric encryption algorithm uses the public key for encryption and the private key for decryption. In PHP, you can use the RSA (Rivest-Shamir-Adleman) algorithm for asymmetric encryption and decryption operations. The specific steps are as follows:

(1) Generate RSA key pair:

$config = array(
    "digest_alg" => "sha512",
    "private_key_bits" => 4096,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
);
$res = openssl_pkey_new($config);  // 生成RSA密钥对
openssl_pkey_export($res, $privateKey);  // 导出私钥
$publicKey = openssl_pkey_get_details($res)['key'];  // 获取公钥

(2) Encrypt data:

$data = "敏感数据";
openssl_public_encrypt($data, $encrypted, $publicKey);  // 使用公钥加密数据

(3) Decrypt data:

openssl_private_decrypt($encrypted, $decrypted, $privateKey);  // 使用私钥解密数据
  1. Using hash algorithm
    The hash algorithm is used to convert original data into a fixed-length string, usually used to store passwords or verify data integrity. Commonly used hashing algorithms in PHP include MD5, SHA1 and SHA256. The specific steps are as follows:

(1) Hash calculation on the original data:

$data = "原始数据";
$hash = md5($data);  // 计算MD5哈希值
$hash = sha1($data);  // 计算SHA1哈希值
$hash = hash('sha256', $data);  // 计算SHA256哈希值

(2) Verify the hash value:

$hash = "存储的哈希值";
if (md5($data) === $hash) {
    echo "哈希值一致";
} else {
    echo "哈希值不一致";
}

Summary: When dealing with sensitive data, PHP provides a variety of encryption and decryption methods, including symmetric encryption algorithms, asymmetric encryption algorithms and hash algorithms. Developers can choose appropriate encryption algorithms to protect data security based on actual needs.

The above is the detailed content of PHP data encryption and decryption operations. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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