PHP Conference Japan 2024

sodium_crypto_sign

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign签名消息

描述

sodium_crypto_sign(字符串 $message, #[\SensitiveParameter] 字符串 $secret_key): 字符串

使用密钥对消息进行签名,可以使用相应的公钥进行验证。此函数将签名附加到消息中。有关分离签名的信息,请参见 sodium_crypto_sign_detached()

参数

message

要签名的消息。

secret_key

密钥。请参见 sodium_crypto_sign_secretkey()

返回值

已签名的消息(未加密)。

添加注释

用户贡献的注释 1 条注释

craig at craigfrancis dot co dot uk
6 年前
这是一个关于如何使用 sodium_crypto_sign() 的快速示例;其中您有一个要签名的消息,因此任何拥有公钥的人都可以确认该消息没有被篡改。

这类似于 sodium_crypto_sign_detached(),但返回的字符串也包含原始消息(以纯文本形式,在末尾,因此任何人都可以阅读)。

<?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);

//--------------------------------------------------
// 第一人,签名

$message = 'Hello';

$message_signed = sodium_crypto_sign($message, $sign_secret);

//--------------------------------------------------
// 第二人,验证

$message = sodium_crypto_sign_open($message_signed, $sign_public);

echo
$message . "\n";

?>
To Top