gpt4 book ai didi

java - 使用哪个 Sun 提供商来生成用于加密(加密)数据的 RSA key 对

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:24:08 26 4
gpt4 key购买 nike

我正在尝试找出应该使用哪个 Sun 加密提供程序来生成将用于 加密 Java 数据的 RSA key 对。我知道还有其他供应商,例如 Bouncy CaSTLe,但我想使用其中一个 Sun 供应商。 (算法:RSA, key 大小 2048)

例如,在我的机器上,我目前有以下提供程序可用:

  • 太阳 1.7
  • SunRsaSign 1.7
  • SunEC 1.7
  • SunJSSE 1.7
  • SunJCE 1.7
  • SunJGSS 1.7
  • SunSASL 1.7
  • XMLDSig 1.0
  • SunPCSC 1.7

我之前使用提供程序 SunRsaSign 生成用于签名数据的 RSA key 对。但我不确定使用 SunRsaSign 生成的 key 对加密数据是否安全或是否有意义。

我注意到提供者 SunJSSE 包含:sun.security.rsa.RSAKeyPairGenerator

我的主要问题是:应该使用哪个 Sun 提供商来生成将用于加密 (未签名) 的 RSA key 对?

此外,SunRsaSign 生成的 key 对是否应该仅用于签署数据?因为这个提供者的名称中包含“Sign”一词,所以我认为它是专门用于签名的,但现在我不太确定了。

最后,使用 SunJSSE 生成的 key 对进行通用加密是否安全且有意义?如果是这样,SunJSSE 生成的 RSA 和 SunJSSE 生成的 RSA key 对有什么区别?

最佳答案

当然你可以看看所有注册的供应商:

Provider[] providers = Security.getProviders();
for (Provider provider : providers) {
Set<Service> services = provider.getServices();
for (Service service : services) {
service.getAlgorithm();
// find algorithm and retrieve service information
}
}

但在这种情况下,解决方案会更简单:

KeyPairGenerator kpgen = KeyPairGenerator.getInstance("RSA");
Provider kpgenProv = kpgen.getProvider();
System.out.printf("Provider : %s%nInfo: %s%n", kpgenProv.getName(), kpgenProv.toString());

结果:

Provider : SunRsaSign
Info: SunRsaSign version 1.7

这可能是为您的运行时生成 RSA key 对的唯一提供程序。请注意,加密是 javax.security 的一部分,这意味着它最初是一个可选的包/提供程序(因为密码学的导入/导出控制)。

RSA key 创建不是加密,因此它包含在提供 RSA 签名生成的 SunRsaSign 中。由于签名不用于提供 secret 性,因此它们被视为不太敏感的加密操作。

关于java - 使用哪个 Sun 提供商来生成用于加密(加密)数据的 RSA key 对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24494265/

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