当前位置: 首页 > 知识库问答 >
问题:

如何将密码添加到由openssl生成的ECC私钥中?

弓胜泫
2023-03-14

我正在尝试使用OpenSSL命令行界面创建基于椭圆曲线的证书。我正在通过在 CLI 中键入以下命令来生成密钥文件:

openssl ecparam -name secp256k1 -genkey -noout -out rootpem.pem

问题是尽管ECC密钥被成功地生成,但它没有用任何对称密码加密。但是,使用下面的命令加密RSA密钥非常简单:

openssl genrsa -aes128 -out 1.key 2048 

是否像 RSA 密钥一样加密 ECC 密钥?

我尝试了“OpenSSL 0.9.8zh 2016年1月14日”和“OpenSSL 1.1.0g 2017年11月2日”多参数组合的OpenSSL版本,但我总是得到错误。

共有3个答案

李谦
2023-03-14

或者可以分两步完成:首先是“ecparam”,然后是键

openssl ecparam -name secp256k1 -out ecparam.pem
openssl genpkey -paramfile ecparam.pem -out key.pem -aes-128-cbc -pass pass:HereIsThePassword
须景辉
2023-03-14

就我尝试的那样,没有一个单一的线路解决方案。它可以通过管道将 openssl ecparam 生成为 openssl ec 命令。一种可能的解决方案是这样的:

openssl ecparam -genkey -name secp384r1 | openssl ec -aes-256-cbc -out rootpem.[pem/key]

查看生成的文件,它们具有与OpenSSL wiki示例相似的标头。但是,我不确定这个管道是否安全,因为未加密的密钥是裸管道的。

杜弘光
2023-03-14

建议使用genpkey命令。它还可以在Ed25519曲线上生成私钥,并在一个命令中使用AES-256对其进行加密:

openssl genpkey -algorithm ed25519 -aes256 -pass stdin -out private/ca.key
 类似资料:
  • 如果我尝试使用OpenSSL命令行生成3TDES加密的PKCS 8密钥: 我得到: PKCS8 RFC没有说明必须使用哪种算法来创建密钥块。它确实给出了PKCS5算法作为例子。有没有办法使用OpenSSL创建一个由DES密钥加密的PKCS8密钥?如果不是,它是OpenSSL不支持的还是一个非常不标准的事情? 下面是通过OpenSSL命令行(密码测试)使用基于密码的加密创建的示例: 这里是我手工制作

  • 我是Openssl的新手,我已经生成了私钥myprivatekey。pem和公钥mypublickey。pem与: 和我的公钥: 接下来我想做的是用通行短语私钥加密我的ecdsa,并对我的公钥进行认证请求,感谢大家的帮助。

  • 我想向AndroidKeyStore导入一个密钥。所以,我可以通过openssl以以下方式生成它 openssl rsa-text-in privateKey2048。佩姆 openssl pkcs8-topk8-通知PEM-in/私钥2048。pem-出口-出口私家车2048。德诺克里普特酒店 然后我可以把它从private2048.der转换成十六进制格式,可以在Android应用程序中的by

  • 我已经使用openssl生成了一个私钥,并在Terminal/command中执行以下命令: null 所有这些都无法解密我的密钥。下面是我根据这篇文章编写的类[https://stackoverflow.com/questions/35276820/decrypting-an-openssl-pem-encoded-rsa-privest-key-with-java]: 我对安全问题一无所知,所

  • 主要的问题是,我对C相当陌生,OpenSSL留档对我来说不够清晰,我尝试过使用读和写rsa键到C中的pem文件,但我不太明白。例如,函数如何创建私有和公共?而从何而来?pcszPassphrase的意义是什么? 我会解释,好像这是某种伪代码,这就是我想做的,粗体部分是我不知道如何做的: 生成私钥和公钥作为十六进制缓冲区(客户端) 基本上,我知道如何处理AES加密/解密和通信协议,反正他们已经实现了

  • 我从这里得到了提示:PHP中的双向加密 作为测试环境,im运行WAMP LocalHost。