Here's a quick example on how to use sodium_crypto_auth(); where you have a message that you want to sign, so anyone who can access the *shared* key can confirm that the message hasn't been tampered with.
This is similar to sodium_crypto_sign_detached(), but both signer and verifier have access to the same key.
<?php
$key = sodium_crypto_auth_keygen();
//--------------------------------------------------
// Person 1, signing
$message = 'Hello';
$signature = sodium_crypto_auth($message, $key);
//--------------------------------------------------
// Person 2, verifying
$message_valid = sodium_crypto_auth_verify($signature, $message, $key);
if (!$message_valid) {
exit('Message has been changed.');
}
?>sodium_crypto_auth
(PHP 7 >= 7.2.0, PHP 8)
sodium_crypto_auth — Compute a tag for the message
Description
Symmetric message authentication via sodium_crypto_auth() provides integrity, but not confidentiality.
Unlike with digital signatures (e.g. sodium_crypto_sign_detached()), any party capable of verifying a message is also capable of authenticating their own messages. (Hence, symmetric authentication.)
Parameters
message- The message you intend to authenticate
key- Authentication key
Return Values
Authentication tag
+add a note
User Contributed Notes 1 note
craig at craigfrancis dot co dot uk ¶
7 years ago