以下是一个关于如何使用 sodium_crypto_sign_detached() 的快速示例,其中您有一个要签名的消息,因此任何拥有公钥的人都可以确认该消息没有被篡改。
这与 sodium_crypto_sign() 类似,但返回的字符串不包含原始消息,它只是一个签名。
<?php
$sign_pair = sodium_crypto_sign_keypair();
$sign_secret = sodium_crypto_sign_secretkey($sign_pair);
$sign_public = sodium_crypto_sign_publickey($sign_pair);
$message = 'Hello';
$signature = sodium_crypto_sign_detached($message, $sign_secret);
$message_valid = sodium_crypto_sign_verify_detached($signature, $message, $sign_public);
if (!$message_valid) {
exit('Message has been changed.');
}
?>