使用 Ed25519 算法对数据进行签名

Sign data with Ed25519 algorithm

我想用算法 Ed25519 签署一些数据。

私钥示例:Y2E3YjYwYzRjMDRjMjk1ZDQ5ZTQzM2RlMTdjZjVkNGE0NGFjYzJmM2IzOWExNWZhMjViNGE4ZWJiZDBiMDVkYTIwNGU4MWE3ZWZmMTQ0NGE2ZmM2NjExNzRmNTY4M2I0YmYyMTk5YTkyY2UzOWRkZjdmMzhkNTFjYTNmM2Q3ZDU=

但是我不知道怎么办。

我尝试使用 openssl_sign,但发现它不支持 Ed25519

我的php版本是7.4.3

PHP 有一个名为 Sodium 的现代加密库。
该扩展与 PHP 7.2.0 捆绑在一起。 Make sure it's enabled.
它具有 sodium_crypto_sign_detached 函数,该函数使用 Ed25519.

$private_key = '...';
$binary_private_key = hex2bin(base64_decode($private_key));
$message = "Hello!";
$signature = sodium_crypto_sign_detached($message, $binary_private_key);

echo bin2hex($signature);