【问题标题】:Convert ECDSA private hex key to public key将 ECDSA 十六进制私钥转换为公钥
【发布时间】:2013-11-20 02:22:42
【问题描述】:

我正在使用以下两行来生成 ECDSA 私钥的十六进制:

openssl ecparam -genkey -name secp256k1 -out data.pem

openssl ec -in data.pem -outform DER|tail -c +8|head -c 32|xxd -p -c 32

那些输出是这样的:

059f2c8f5b1978bcc02d4b41e75c3aae99f3194fb06b53ffd256178e1367a2a6

然后如何使用该十六进制密钥生成公共 ECDSA 密钥,类似这样?

043d6fa62769c10ceb28d3c13ae1e2329888e99d9c8bf854cc5bdcea0b7cd3002a0f5d244e35eec297c8eb4098b75295328cdeebe7e39a5ac7539f0fc146fa3c99

感谢任何帮助。

【问题讨论】:

  • 你为什么要给你的钥匙一个名字data?你不觉得这是不必要的混乱吗?

标签: openssl hex ecdsa


【解决方案1】:

试试这个

openssl ec -in data.pem -pubout -out pubkey.pem

【讨论】:

    【解决方案2】:

    您可以获取从

    获得的私钥的最后 65 个字节
    openssl ecparam -genkey -name secp256k1 -out data.pem
    openssl ec -in data.pem -outform DER
    

    这也是你的公钥。

    【讨论】:

    • 还有你的私钥。想象一下将其发送给某人。好的,您描述了占用 65 个字节,这仅对特定的曲线大小有效(从未提及),并且您的代码实际上也没有实现它。结果是只是公钥点,大多数实现不接受,并且缺少参数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    • 1970-01-01
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多