gpt4 book ai didi

cryptography - 从 OpenSSL 命令行生成 EC key 对

转载 作者:行者123 更新时间:2023-12-04 05:21:42 25 4
gpt4 key购买 nike

我希望能够在命令行中使用 openssl 生成 key 对私钥和公钥,但我不知道该怎么做。到目前为止我所做的是执行以下命令行,但这只会打印我不知道它到底是什么的这个:s

FROM OPENSSL PAGE:使用显式参数创建 EC 参数:

openssl ecparam -out ec_param.pem -name prime192v1 -param_enc explicit

-----BEGIN EC PARAMETERS-----
MIHHAgEBMCQGByqGSM49AQECGQD////////////////////+//////////8wSwQY
/////////////////////v/////////8BBhkIQUZ5ZyA5w+n6atyJDBJ/rje7MFG
ubEDFQAwRa5vyEIvZO1XlSjTgSDq4SGW1QQxBBiNqA6wMJD2fL8g60OhiAD0/wr9
gv8QEgcZK5X/yNp4YxAR7WskzdVz+XehHnlIEQIZAP///////////////5ne+DYU
a8mxtNIoMQIBAQ==
-----END EC PARAMETERS-----

有人可以告诉我如何得到这样的东西:
//-----------------Generated Key Pair----------------------------------//
char privkey[]=
"-----BEGIN EC PARAMETERS-----\n"
"BgUrgQQACQ==\n"
"-----END EC PARAMETERS-----\n"
"-----BEGIN EC PRIVATE KEY-----\n"
"MFACAQEEFI9sfpfTk0YlZx8JaCZnLsy4T6HYoAcGBSuBBAAJoSwDKgAEIlzYflxD\n"
"0396M0i6dGfSY3khTU7kiNyEv/B1EoyGmqvH7tjhSmpP1A==\n"
"-----END EC PRIVATE KEY-----\n";
char pubkey[] =
"-----BEGIN PUBLIC KEY-----\n"
"MD4wEAYHKoZIzj0CAQYFK4EEAAkDKgAEIlzYflxD0396M0i6dGfSY3khTU7kiNyE\n"
"v/B1EoyGmqvH7tjhSmpP1A==\n"
"-----END PUBLIC KEY-----\n";
//---------------------------------------------------------------------//

我从我上网的代码中得到这个,它使用这个 key 对与 ECDSA 签署消息,但现在我希望能够生成我自己的 key 对(从 openssl 命令行)并在这样的代码中使用它,为我的更改此 key 对。

就我而言,我想使用“prime256v1”的 NIST P225。

有人能帮我吗?

谢谢,最好的问候

最佳答案

私钥

假设一个 UX 平台,例如 OS X 或 Linux。测试时也省略 $。生成私有(private) ECDSA key :

 $ openssl ecparam -name prime256v1 -genkey -noout -out private.ec.key

使用密码短语转换和加密私钥:
 $ openssl pkcs8 -topk8 -in private.ec.key -out private.pem

您现在可以安全地删除 private.ec.key只要你记住密码短语。

公钥

生成公共(public) ECDSA key :
 $ openssl ec -in private.pem -pubout -out public.pem

测试

制作一个小文本文件进行测试:
 $ touch msg.txt | echo "hello world" > msg.txt

做一个哈希摘要:
 $ openssl dgst -sha256 -out msg.digest.txt msg.txt

从摘要中制作一个签名文件:
 $ openssl dgst -sha256 -sign private.pem -out msg.signature.txt msg.digest.txt

验证签名:
 $ openssl dgst -sha256 -verify public.pem -signature msg.signature.txt msg.digest.txt

此外,您可能希望在邮寄之前将签名编码为 base64,然后在收到签名之前将其解码到 bin 中。

这是你如何做到的:

编码:
 $ openssl base64 -in msg.signature.txt -out msg.base64.sig.txt

解码:
 $ openssl base64 -d -in msg.base64.sig.txt -out msg.signature.txt

关于cryptography - 从 OpenSSL 命令行生成 EC key 对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15686821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com