我试图找出应该使用哪个 Sun 加密提供程序来生成 RSA 密钥对,该密钥对将用于加密Java 中的数据。我知道还有其他提供商,例如 Bouncy Castle,但我想使用其中一个 Sun 提供商。(算法:RSA,密钥大小 2048)
例如,在我的机器上,我目前有以下提供程序可用:
- 太阳 1.7
- SunRsaSign 1.7
- SunEC 1.7
- SunJSSE 1.7
- SunJCE 1.7
- SunJGSS 1.7
- SunSASL 1.7
- XMLDSig 1.0
- 太阳PCSC 1.7
我以前使用提供者 SunRsaSign 来生成用于签名数据的 RSA 密钥对。但我不确定它是否安全,或者使用 SunRsaSign 生成的密钥对加密数据是否有意义。
我注意到提供者 SunJSSE 包含: sun.security.rsa.RSAKeyPairGenerator
我的主要问题是:应该使用哪个 Sun 提供程序来生成将用于加密 (而不是签名)的 RSA 密钥对?
此外,SunRsaSign 生成的密钥对是否应该仅用于签署数据?因为这个提供者的名字中包含“Sign”这个词,所以我认为它是专门用于签名的,但现在我不太确定了。
最后,使用 SunJSSE 生成的密钥对进行一般加密是否安全且有意义?如果是这样,SunJSSE 生成的 RSA 和 SunJSSE 生成的 RSA 密钥对有什么区别?