以下是一个使用PHP的openssl扩展进行数据加密和解密的实例。这个实例将展示如何生成加密密钥,如何使用这个密钥加密一段文本,以及如何使用相同的密钥解密文本。
| 步骤 | 代码 | 说明 |
|---|---|---|
| 1.生成加密密钥 | ```php | |
| 使用openssl_pkey_new()函数生成RSA私钥,并将其导出为PEM格式。 | ||
| 2.生成公钥 | ```php | |
| 获取私钥的详细信息,然后提取公钥。 | ||
| 3.加密文本 | ```php | |
| 使用openssl_public_encrypt()函数和公钥加密文本。 | ||
| 4.解密文本 | ```php | |
| 使用openssl_private_decrypt()函数和私钥解密文本。 |
完整的PHP代码示例如下:
```php
// 1. 生成加密密钥
$privateKey = openssl_pkey_new([
'private_key_type' => OPENSSL_KEYTYPE_RSA,
'private_key_bits' => 2048,
]);
openssl_pkey_export($privateKey, $privateKeyPem);
// 2. 生成公钥
$publicKey = openssl_pkey_get_details($privateKey);
$publicKey = $publicKey['key'];
// 3. 加密文本
$plaintext = 'Hello, this is a secret message!';
$encrypted = '';
openssl_public_encrypt($plaintext, $encrypted, $publicKey, OPENSSL_PKCS1_OAEP_PADDING);
// 4. 解密文本
$decrypted = '';
openssl_private_decrypt($encrypted, $decrypted, $privateKey, OPENSSL_PKCS1_OAEP_PADDING);
echo "








