查詢

sodium_crypto_sign_detached()函式—用法及示例

「 使用私鑰對訊息進行數字簽名,並返回簽名的訊息摘要 」


函式名稱:sodium_crypto_sign_detached()

函式描述:sodium_crypto_sign_detached() 函式使用私鑰對訊息進行數字簽名,並返回簽名的訊息摘要。

適用版本:PHP 7.2.0 及以上版本

用法:

string sodium_crypto_sign_detached ( string $message , string $secret_key )

引數:

  • $message:要簽名的訊息,型別為字串。
  • $secret_key:用於簽名的私鑰,型別為字串。

返回值:

  • 返回一個訊息摘要的字串,長度為64位元組。

示例:

// 生成公鑰和私鑰對
$keyPair = sodium_crypto_sign_keypair();

// 獲取私鑰
$secretKey = sodium_crypto_sign_secretkey($keyPair);

// 獲取公鑰
$publicKey = sodium_crypto_sign_publickey($keyPair);

// 要簽名的訊息
$message = "Hello, World!";

// 使用私鑰對訊息進行簽名
$signature = sodium_crypto_sign_detached($message, $secretKey);

// 驗證簽名的有效性
if (sodium_crypto_sign_verify_detached($signature, $message, $publicKey)) {
    echo "簽名有效";
} else {
    echo "簽名無效";
}

注意事項:

  • sodium_crypto_sign_detached() 函式使用私鑰對訊息進行簽名,並返回簽名的訊息摘要。簽名後的訊息摘要可以與原始訊息一起傳輸,並透過 sodium_crypto_sign_verify_detached() 函式進行驗證。
  • 私鑰和公鑰可以使用 sodium_crypto_sign_keypair() 函式生成。
  • 在驗證簽名時,需要使用公鑰和原始訊息。如果驗證成功,返回 true;否則,返回 false。
  • sodium_crypto_sign_detached() 函式返回的訊息摘要長度固定為64位元組,可以透過 sodium_crypto_sign_BYTES 引數獲取。
  • sodium_crypto_sign_detached() 函式僅支援 Ed25519 簽名演算法。
  • 在使用 sodium_crypto_sign_detached() 函式時,確保私鑰的安全儲存和傳輸,以防止私鑰洩露,避免數字簽名被偽造。
補充糾錯
熱門PHP函式
分享連結