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

使用keytool生成Java 7 ECC密钥对

马飞
2023-03-14

如果我在某个地方出错,请纠正我,因为我是加密领域的新手。

我使用以下命令在Java 7中生成EC密钥对:

根据:文件。神谕com/javase/7/docs/technotes/tools/windows/keytool。html#命令

keytools-genkey对-alias MyServerPair-keyalg EC-keysize 571-sigalg SHA512 with ECDSA-keypass 123456-有效性365-storetype JKS-keystore MyServerStore-store pass 123456

执行后,

Keystore在目录中生成。之后,我尝试使用以下命令导出cert:

keytool-exportcert-别名MyServerPair-文件MyServer。crt-storetype JKS-keystore MyServerStore-storepass 123456

之后是MyServer。生成crt。

但当我打开MyServer时。crt文件并检查证书状态我发现,“此证书具有无效的数字签名”

此外,在证书详细信息中,当我看到公钥值时,它会显示ECC(0位)。

为什么会这样?我哪里做错了?我猜我使用了错误的签名算法。

我指的是医生们。神谕com/javase/7/docs/technotes/gui4des/security/SunProviders。html#SunEC

这里有一些截图

编辑:

当我使用像571这样的二进制字段值作为-keysize时会发生这种情况,但如果我使用与像521这样的二进制字段值相对应的素字段值,则其工作正常,没有上述问题。

编辑2:

即使使用其他-sigalg值和键大小571以及其他二进制值,也存在问题。

我猜只能使用素数字段值。

共有1个答案

吴谦
2023-03-14

您不能在ECC中使用任意大小的密钥,但可以选择一条椭圆曲线,在该曲线上执行加密操作。521映射到NIST P–521曲线时,没有键尺寸571的映射,因此无法工作。此处的名称keysize错误,最好是ecc的曲线名称。

 类似资料:
  • 我想生成一个自签名的可信证书和一个csr,并用创建的可信证书对csr进行签名。我正在用keytool尝试它。在使用以下命令创建受信任证书的第一步中 keytool-list-v-keystore cert/test.keystore 使用上面的“genkey”命令创建的证书的条目类型为“privatekeyentry”,如何创建可信的证书条目?

  • 当使用keytool生成keystore时,我收到错误非法选项:genkeypair。但是当我看到帮助时,genkeypair是可用的选项。我在指挥上做错了什么? C:\program files\java\jdk1.7.0_51\bin>keytool.exe-genkeypair-alias orbis-storetype pkcs12-keyalg rsa-keysize 2048-keys

  • 我正在尝试创建一个公钥以允许我推送到Git,但我的. ssh文件夹尚未创建。 以下是我运行的命令: $ssh-keygen-t rsa-Cemaill@me.com 生成公共/私有rsa密钥对 输入保存密钥的文件(/h/.ssh/id\u rsa): 这就是H:驱动器配置、数据、配置文件、配置文件中的全部内容。V2 我认为有一个问题,因为当我得到提示输入文件,其中保存密钥(/h//. ssh/id

  • 我无法使用keytool(java 8)更改PKCS密钥库密码。当我试图更改密钥密码时: 这意味着无法更改PKCS12密钥库的密钥密码。然后我尝试更改keystore密码: 这意味着,我们必须一起更改密钥库密码和密钥密码。但是没有命令可以改变两者。我能做什么呢?

  • 使用指定密码生成对称密钥,保存并返回ID。 调用: web3.shh.generateSymKeyFromPassword(password, [callback]) 参数: password:String - 用于生成对称密钥的密码 callback:Function - 可选的回调函数,其第一个参数为错误对象,第二个参数为返回结果 返回值: String - 成功时返回ID,否则返回错误信息