以下是如何使用 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);
//--------------------------------------------------
// 个人 1,签名
$message = 'Hello';
$message_signed = sodium_crypto_sign($message, $sign_secret);
//--------------------------------------------------
// 个人 2,验证
$message = sodium_crypto_sign_open($message_signed, $sign_public);
echo $message . "\n";
?>