php - 是否可以使用 PHP 中的内置 openssl_pkey_new 函数生成 ED25519 密钥对?
问题描述
我正在尝试使用 PHP 中的内置 openssl_pkey_new 生成 ED25519 私钥/公钥对,但我无法正常工作。
不确定,但不可能吗?
使用 PHP-7.3.13 和 OpenSSL-1.1.1d。
<?php
...
// OpenSSL config
$openssl_config = array(
'curve_name' => 'ed25519', // <- not working
'private_key_type' => OPENSSL_KEYTYPE_EC
);
// Create OpenSSL keypair
$openssl_keypair = openssl_pkey_new($openssl_config);
openssl_pkey_export($openssl_keypair, $privatekey);
$openssl_details = openssl_pkey_get_details($openssl_keypair);
$publickey = $openssl_details['key'];
echo $privatekey;
echo $publickey;
...
?>
解决方案
看起来不可能,请阅读https://www.php.net/manual/en/function.openssl-get-curve-names.php上的文档,没有 ED25519 曲线名称。
ED25519 用于签名,因此在 php.ini 中生成一个 ED25519 密钥对。使用“sodium_crypto_sign_keypair”功能。
推荐阅读
- sql - 根据周将日期划分为上一年
- docker - 仅将 docker swarm 上的端口发布到连接的网络之一
- javascript - 为什么我的 mongoDB update-function 在成功更新文档后没有退出?
- python-3.x - python 3.6 __str__ 如何影响 print()
- java - Java:同时写入和读取文件
- c# - 如何在使用 NUnit 或 XUnit 时将参数传递给 dotnet test 命令
- c++ - GNU 链接器如何决定需要哪些 C/C++ 库文件?
- java - 我的布局 .xml 文件中允许使用我的所有元素
- php - 是什么导致了这个 InvalidSignature 异常?(公钥和签名由 PHP 创建,验证在 Python 中完成)
- powershell - foreach 循环中的 if else continue 语句出现问题