這是一個關於如何使用 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";
?>