gpt4 book ai didi

java - PKCS11机制区别+JAVA

转载 作者:行者123 更新时间:2023-11-30 07:18:54 25 4
gpt4 key购买 nike

我正在使用 PKCS11 机制实现功能 - CKM_RSA_PKCS 和 CKM_RSA_X_509。我知道两者都是在 Botan C++ 库中实现的,但我必须在 Java 中找到等效项。第二个问题是它们之间有什么区别?

最佳答案

CKM_RSA_PKCS指的是用于 RSA 加密和数字签名的 PKCS#1 v1.5 标准(参见 RFC3447)。在 Java JCE 中,它通常是 RSA 的默认选择。

  • 对于数字签名,将“MD5WithRSA”“SHA1WithRSA”等传递给Signature.getInstance()
  • 对于加密,将 “RSA/None/PKCS1Padding” 传递给 Cipher.getInstance()

CKM_RSA_X_509指教科书(或原始)RSA 算法,即未定义填充的算法。在这种情况下,您只需将 "RSA/None/NoPadding" 传递给 Cipher.getInstance()。签名可以通过解密来完成,而验证可以通过加密来完成(然后进行比较)。

不过,除非您有特定的用例,否则我会避免实现和使用原始 RSA。 PKCS#1v 1.5 签名更安全。但是对于加密,我实际上不建议使用它们中的任何一个,因为它们都是不安全的。最好只依赖 PKCS#1 OAEP ( CKM_RSA_PKCS_OAEP );为此,您将 "RSA/None/OAEPWithSHA1AndMGF1Padding" 传递给 Cipher.getInstance()

关于java - PKCS11机制区别+JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15003113/

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