查詢

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函式
分享連結