gpt4 book ai didi

使用 keytool 生成 Java 7 ECC key 对

转载 作者:行者123 更新时间:2023-11-30 09:10:44 25 4
gpt4 key购买 nike

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

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

根据:docs.oracle.com/javase/7/docs/technotes/tools/windows/keytool.html#Commands

keytool -genkeypair -alias MyServerPair -keyalg EC -keysize 571 -sigalg SHA512withECDSA -keypass 123456 -validity 365 -storetype JKS -keystore MyServerStore -storepass 123456

执行后,

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

keytool -exportcert -alias MyServerPair -file MyServer.crt -storetype JKS -keystore MyServerStore -storepass 123456

之后生成 MyServer.crt。

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

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

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

我指的是,docs.oracle.com/javase/7/docs/technotes/gui4des/security/SunProviders.html#SunEC

一些截图是here

编辑:

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

编辑 2:

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

我想素数字段值只能被使用。

最佳答案

您不能对 ECC 使用任意 key 大小,但您可以选择一条椭圆曲线来进行加密操作。 521 映射到 NIST P–521 曲线, key 大小 571 没有映射,因此它不起作用。这里keysize的名字是错误的,最好是ecc的曲线名。

关于使用 keytool 生成 Java 7 ECC key 对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22399892/

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