当我们从客户端接收到Solana地址(Ed25519公钥)时,构建服务器端实现来对合同进行Solana验证。他们只想让我使用本地PHP方法,没有导入,idk为什么。开源库仍然很有帮助,因为我可以尽我最大的努力从它中提取一些片段。我确实可以访问这里的所有libsodium PHP\Sodium库方法:https://www.php.net/manual/en/book.sodium.php (我认为这允许我们做Ed25519)
这是JS:https://solana-labs.github.io/solana-web3.js/classes/PublicKey.html#isOnCurve中的实现
我在PHP中需要这个。换言之:
如何在PHP中验证Solana地址(如AJXw4EJtRBGswEestiD3gztdbsAh8fe3VSJXs6U33UBv)?同样,如何验证公钥是否在Ed25519曲线上?
提前感谢!我通常不会在StackOverflow上发表文章,但我希望随着Web3的不断发展,这个答案将是有用的。
发布于 2022-05-18 15:12:11
看起来,您最好的选择是尝试sodium_crypto_sign_ed25519_pk_to_curve25519并在失败时捕获异常,即:
try {
$_ = sodium_crypto_sign_ed25519_pk_to_curve25519($pubkeyBinaryString);
return true;
} catch (SodiumException $exception) {
return false;
}https://stackoverflow.com/questions/72283492
复制相似问题