For those(like me) confused by sodium_crypto_sign() vs. sodium_crypto_sign_detached()
From the libsodium docs https://libsodium.gitbook.io/doc/public-key_cryptography/public-key_signatures
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.
PHP.mk документација
sodium_crypto_sign_detached
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
function.sodium-crypto-sign-detached.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
function.sodium-crypto-sign-detached.php
sodium_crypto_sign_detached
Референца за `function.sodium-crypto-sign-detached.php` со подобрена типографија и навигација.
sodium_crypto_sign_detached
(PHP 7 >= 7.2.0, PHP 8)
sodium_crypto_sign_detached — Потпиши ја пораката
= NULL
sodium_crypto_sign_detached(string
$message, Иницијализира контекст за инкрементално хеширање string $secret_key): stringПотпиши порака со таен клуч, што може да се потврди со соодветниот јавен клуч. Оваа функција враќа одвоен потпис.
Параметри
message- Порака за потпишување.
secret_key- Таен клуч. Види sodium_crypto_sign_secretkey()
Вратени вредности
Криптографски потпис.
Белешки од корисници 2 забелешки
cb на dialogs dot com ¶
пред 5 години
крег на крегфренсис точка ко точка ук ¶
пред 7 години
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.
<?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);
//--------------------------------------------------
// 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) {
exit('Message has been changed.');
}
?>