这是一个关于如何使用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('消息已被更改。');
}
?>