PHP 日本研討會 2024

sodium_crypto_sign

(PHP 7 >= 7.2.0,PHP 8)

sodium_crypto_sign簽署訊息

描述

sodium_crypto_sign(string $message, #[\SensitiveParameter] string $secret_key): string

使用私密金鑰簽署訊息,該訊息可由對應的公開金鑰驗證。此函式會將簽名附加到訊息。有關分離式簽名,請參閱 sodium_crypto_sign_detached()

參數

message

要簽署的訊息。

secret_key

私密金鑰。請參閱 sodium_crypto_sign_secretkey()

回傳值

已簽署的訊息(未加密)。

新增註解

使用者貢獻註解 1 則註解

3
craig at craigfrancis dot co dot uk
6 年前
這是一個關於如何使用 sodium_crypto_sign() 的快速範例;您有一個想要簽署的訊息,因此任何擁有公開金鑰的人都可以確認訊息沒有被竄改。

這與 sodium_crypto_sign_detached() 類似,但回傳的字串也包含原始訊息(以純文字形式,在末尾,所以任何人都可以閱讀它)。

<?php

// $sign_seed = random_bytes(SODIUM_CRYPTO_SIGN_SEEDBYTES);
// $sign_pair = sodium_crypto_sign_seed_keypair($sign_seed);

$sign_pair = sodium_crypto_sign_keypair();
$sign_secret = sodium_crypto_sign_secretkey($sign_pair);
$sign_public = sodium_crypto_sign_publickey($sign_pair);

//--------------------------------------------------
// 第一個人,簽署

$message = 'Hello';

$message_signed = sodium_crypto_sign($message, $sign_secret);

//--------------------------------------------------
// 第二個人,驗證

$message = sodium_crypto_sign_open($message_signed, $sign_public);

echo
$message . "\n";

?>
To Top