php openssl_verify
时间: 2023-09-05 20:09:34 浏览: 163
`openssl_verify` 是 PHP 中用于验证签名的函数,常用于验证传输过程中的数据完整性和真实性。
函数原型如下:
```
bool openssl_verify ( string $data , string $signature , mixed $pub_key_id [, string $digest_alg = "sha1WithRSAEncryption" ] )
```
参数说明:
- `$data`:待验证的数据。
- `$signature`:签名数据。
- `$pub_key_id`:公钥。
- `$digest_alg`:摘要算法,默认为 `sha1WithRSAEncryption`。
函数返回值为布尔值,表示验证结果。如果验证成功,返回 `true`;否则返回 `false`。
下面是一个简单的示例:
```
// 待验证的数据
$data = 'Hello world';
// 签名数据
$signature = base64_decode('...');
// 公钥
$pub_key = '-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArbYfTnGcf1IQc6Uj6Omk
...
-----END PUBLIC KEY-----';
// 转换公钥格式
$pub_key = openssl_get_publickey($pub_key);
// 验证签名
$verify = openssl_verify($data, $signature, $pub_key, OPENSSL_ALGO_SHA256);
if ($verify === 1) {
echo '签名验证成功';
} else {
echo '签名验证失败';
}
```
在实际应用中,签名数据和公钥通常是由发送方生成并传输给接收方的。接收方使用 `openssl_verify` 函数验证签名数据,以确保接收到的数据是完整的和真实的。
阅读全文