PHP Conference Japan 2024

gnupg_verify

(PECL gnupg >= 0.1)

gnupg_verify验证已签名的文本

描述

gnupg_verify(
    资源 $identifier,
    字符串 $signed_text,
    字符串 $signature,
    字符串 &$plaintext = ?
): 数组|false

验证给定的 signed_text 并返回有关签名的信息。

参数

identifier

gnupg标识符,来自对gnupg_init()gnupg的调用。

signed_text

已签名的文本。

signature

签名。要验证已清除签名的文本,请将signature设置为false

plaintext

纯文本。如果传递此可选参数,则将其填充为纯文本。

返回值

成功时,此函数返回有关签名的信息。失败时,此函数返回false

示例

示例 #1 过程式 gnupg_verify() 示例

<?php
$plaintext
= "";
$res = gnupg_init();
// clearsigned
$info = gnupg_verify($res,$signed_text,false,$plaintext);
print_r($info);
// detached signature
$info = gnupg_verify($res,$signed_text,$signature);
print_r($info);
?>

示例 #2 面向对象 gnupg_verify() 示例

<?php
$plaintext
= "";
$gpg = new gnupg();
// clearsigned
$info = $gpg->verify($signed_text,false,$plaintext);
print_r($info);
// detached signature
$info = $gpg->verify($signed_text,$signature);
print_r($info);
?>

添加注释

用户贡献注释 2 条注释

kae at verens dot com
16年前
您可以通过检查其指纹来查看谁签署了签名

<?php
$res
= gnupg_init();
$info = gnupg_verify($res,$signed_text,$signature);
if(
$info !== false){
$fingerprint = $info['fingerprint'];
var_dump(gnupg_keyinfo($res, $fingerprint));
}
izumeroot at gmail dot com
2年前
在哪里可以查看结果数组的描述?

我得到了

数组
(
[0] => 数组
(
[fingerprint] => 9BF78012F700B345827346E1EFA3026F01404358
[validity] => 4
[timestamp] => 1643100153
[status] => 0
[summary] => 3
)

)

但是“status”是什么意思?“validity”是什么?“summary”是什么?
To Top