Java 7 keytool 椭圆曲线加密

8

我正在尝试使用keytool创建一个使用keyalg ECC的密钥库。

根据Oracle的说法,这应该是可能的。我引用:

领域:工具

简介:keytool和jarsigner工具现在支持ECC算法进行密钥对生成和jar签名。

RFE:6870812

我正在使用32位版本1.7.0_07,并尝试使用-keyalg ECC、ECIES、ECDSA等keytool命令,但总是得到“无法推导出签名算法”的错误信息。

我是否使用了错误的Java版本?我是否使用了错误的ECC名称?

2个回答

8
这里是算法选择的源代码。允许的值为DSARSAEC。据我所知,这些值并没有在任何地方记录下来。

1
以下是允许值的官方文档,供以后参考:https://docs.oracle.com/javase/8/docs/technotes/tools/windows/keytool.html - Ti Strga

4

抱歉,但我已经安装了它们(并通过创建RSA密钥库进行了测试),所以肯定还有其他我需要注意的地方。 - Bruno Lowagie
好的,我找到了问题,但它很奇怪。当我执行“java -version”时,我得到的Java版本是“1.7.0_07”,但显然,当我使用keytool时,我正在使用我的计算机上不同JDK中的keytool。通过将“keytool”更改为“./keytool.exe”,我发现了这一点。奇怪...正确的命令是:keytool -genkeypair -keyalg EC -keysize 160 -keystore .keystore - Bruno Lowagie
一般而言,ECC 在使用较小的密钥尺寸时是安全的,但 160 位有些勉强。我宁愿选择 256 位,反正 ECC 已经足够快了。 - Maarten Bodewes
谢谢。我只需要keystore进行测试,但你是对的。 即使在测试环境中,也没有理由不使用256位的密钥长度。 - Bruno Lowagie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接