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

openssl_spki_verify()函数—用法及示例

「 验证一个SPKI(Subject Public Key Info)结构的签名 」


函数名称:openssl_spki_verify()

函数描述:该函数用于验证一个SPKI(Subject Public Key Info)结构的签名。

适用版本:PHP 5 >= 5.6.0, PHP 7

语法:bool openssl_spki_verify(resource $spki, string $algorithm, string $signature)

参数:

  • $spki:SPKI结构的资源句柄,可以通过openssl_spki_new()函数创建。
  • $algorithm:签名算法,如"sha256"、"sha384"、"sha512"等。
  • $signature:要验证的签名。

返回值:

  • 如果签名验证成功,则返回true。
  • 如果签名验证失败,则返回false。

示例:

// 创建SPKI结构
$spki = openssl_spki_new();

// 生成密钥对
$privateKey = openssl_pkey_new();
$details = openssl_pkey_get_details($privateKey);
$publicKey = $details['key'];

// 将公钥添加到SPKI结构中
openssl_spki_export($spki, $spkiout);
$spkiWithPublicKey = openssl_spki_add_publickey($spkiout, $publicKey);

// 对SPKI结构进行签名
openssl_spki_sign($spkiWithPublicKey, $privateKey, $spkisigned);

// 验证签名
$isValid = openssl_spki_verify($spkiWithPublicKey, "sha256", $spkisigned);
if ($isValid) {
    echo "签名验证成功!";
} else {
    echo "签名验证失败!";
}

注意事项:

  1. 在使用openssl_spki_verify()函数之前,需要先创建一个SPKI结构,可以通过openssl_spki_new()函数创建。
  2. 必须使用相同的签名算法和密钥对对SPKI结构进行签名和验证。
  3. 在示例中,生成了一个随机的密钥对,并将公钥添加到SPKI结构中,然后对SPKI结构进行签名并验证签名的有效性。
  4. 可以根据实际需求选择不同的签名算法,如"sha256"、"sha384"、"sha512"等。
  5. 如果签名验证成功,将返回true;如果签名验证失败,将返回false。
补充纠错
上一个函数: openssl_verify()函数
热门PHP函数
分享链接