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

簽章。要驗證 clearsigned 文字,請將 signature 設定為 false

plaintext

純文字。如果傳遞此可選參數,它將會被填入純文字。

返回值

成功時,此函式會返回簽章的相關資訊。失敗時,此函式會返回 false

範例

範例 #1 程序式 gnupg_verify() 範例

<?php
$plaintext
= "";
$res = gnupg_init();
// clearsigned 文字
$info = gnupg_verify($res,$signed_text,false,$plaintext);
print_r($info);
// 分離式簽章
$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);
// 分離式簽章
$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