English | 简体中文 | 繁體中文
查询

openssl_verify()函数—用法及示例

「 验证通过 openssl_sign() 函数签名的数据 」


函数名:openssl_verify()

适用版本:PHP 4 >= 4.0.4, PHP 5, PHP 7

用法:openssl_verify(string $data, string $signature, mixed $public_key, int $algorithm = OPENSSL_ALGO_SHA256): int|bool

说明:openssl_verify() 函数用于验证通过 openssl_sign() 函数签名的数据。它通过使用公钥和签名来验证数据的完整性和真实性。

参数:

  • $data:要验证的数据,通常是原始数据的哈希值。
  • $signature:签名数据。
  • $public_key:公钥,通常是证书文件路径或者公钥字符串。
  • $algorithm:可选参数,指定使用的哈希算法,默认为 OPENSSL_ALGO_SHA256。

返回值:

  • 如果签名验证成功,返回1;
  • 如果签名验证失败,返回0;
  • 如果发生错误,返回-1。

示例:

<?php
// 原始数据
$data = "Hello, world!";

// 签名数据
$signature = base64_decode("...");

// 公钥
$public_key = file_get_contents("public_key.pem");

// 验证签名
$result = openssl_verify($data, $signature, $public_key);

if ($result == 1) {
    echo "签名验证成功!";
} elseif ($result == 0) {
    echo "签名验证失败!";
} else {
    echo "发生错误:" . openssl_error_string();
}
?>

上述示例中,我们首先定义了原始数据、签名数据和公钥。然后,使用 openssl_verify() 函数来验证签名。如果返回值为1,则表示签名验证成功;如果返回值为0,则表示签名验证失败;如果返回值为-1,则表示发生了错误,我们可以通过 openssl_error_string() 函数获取具体的错误信息。

补充纠错
下一个函数: openssl_spki_verify()函数
热门PHP函数
分享链接