openssl_sign
时间: 2023-09-19 09:09:54 浏览: 67
openssl签名和验证
`openssl_sign` 是 OpenSSL 库提供的一个函数,用于对数据进行数字签名。数字签名是一种用于保证数据完整性、认证数据来源和防止数据被篡改的技术。
该函数的语法如下:
```
bool openssl_sign(string $data, string &$signature, mixed $private_key_id [, int $algorithm = OPENSSL_ALGO_SHA256])
```
其中,参数含义如下:
- `$data`:要进行签名的数据。
- `$signature`:签名后的结果将被存储在此变量中。
- `$private_key_id`:私钥标识符,可以是 PEM 格式的私钥文件路径,也可以是 OpenSSL 资源句柄。
- `$algorithm`:签名算法,默认为 SHA256。
该函数返回一个布尔值,表示签名是否成功。
示例代码:
```php
$data = 'Hello, world!';
$private_key = file_get_contents('private_key.pem');
openssl_sign($data, $signature, $private_key, OPENSSL_ALGO_SHA256);
echo base64_encode($signature);
```
上述代码中,我们使用了一个 PEM 格式的私钥文件来进行签名,并使用 SHA256 算法。签名结果将被编码为 base64 格式并输出。
阅读全文