(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_detachedПодписать сообщение


sodium_crypto_sign_detached(string $message, string $secret_key): string

Подписывает сообщение секретным ключом, который можно проверить с помощью соответствующего открытого ключа. Функция возвращает отсоединённую подпись.

Список параметров


Сообщение для подписания.


Секретный ключ. Смотрите sodium_crypto_sign_secretkey()

Возвращаемые значения

Криптографическая подпись.

add a note

User Contributed Notes 2 notes

craig at craigfrancis dot co dot uk
5 years ago
Here's a quick example on how to use sodium_crypto_sign_detached(); where you have a message that you want to sign, so anyone with the public key can confirm that the message hasn't been tampered with.

This is similar to sodium_crypto_sign(), but the returned string does not contain the original message, it is just a signature.


// $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);

// Person 1, signing

$message = 'Hello';

$signature = sodium_crypto_sign_detached($message, $sign_secret);

// Person 2, verifying

$message_valid = sodium_crypto_sign_verify_detached($signature, $message, $sign_public);

if (!
$message_valid) {
'Message has been changed.');

cb at dialogs dot com
3 years ago
For those(like me) confused by sodium_crypto_sign() vs. sodium_crypto_sign_detached()

From the libsodium docs

The crypto_sign() function prepends a signature to a message "Combined mode"

In "detached mode" the signature is stored without attaching a copy of the original message to it.
To Top