以下是一个使用PHP的openssl扩展进行数据加密和解密的实例。这个实例将展示如何生成加密密钥,如何使用这个密钥加密一段文本,以及如何使用相同的密钥解密文本。

$privateKey = openssl_pkey_new([

'private_key_type' => OPENSSL_KEYTYPE_RSA,

实例php  加密,PHP加密实例:使用openssl实现数据加密和解密 第1张

'private_key_bits' => 2048,

]);

openssl_pkey_export($privateKey, $privateKeyPem);

```

$publicKey = openssl_pkey_get_details($privateKey);

$publicKey = $publicKey['key'];

```

$plaintext = 'Hello, this is a secret message!';

$encrypted = '';

openssl_public_encrypt($plaintext, $encrypted, $publicKey, OPENSSL_PKCS1_OAEP_PADDING);

```

$decrypted = '';

openssl_private_decrypt($encrypted, $decrypted, $privateKey, OPENSSL_PKCS1_OAEP_PADDING);

```

步骤代码说明
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 "