首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PKCS11机制差异+ JAVA

PKCS11机制差异+ JAVA
EN

Stack Overflow用户
提问于 2013-02-21 13:11:20
回答 1查看 1.6K关注 0票数 2

我正在用PKCS11机制实现函数-- CKM_RSA_PKCS和CKM_RSA_X_509。我知道这两种方法都是在Botan C++库中实现的,但我必须在Java中找到相应的工具。第二个问题是,两者有什么区别?

EN

回答 1

Stack Overflow用户

发布于 2013-02-22 18:14:50

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

  • 对于数字签名,请将"MD5WithRSA“、"SHA1WithRSA”等传递给Signature.getInstance()
  • 对于加密,将“RSA/None/PKCS1Padd”传递给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/OAEPWithSHA1AndMGF1PING”传递给Cipher.getInstance()

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15003113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档