为什么人们使用bouncycastle而不是Java内置的JCE提供程序?有什么不同?

cly*_*yfe 73 java cryptography

为什么人们使用bouncycastle而不是Java Cryptography Extension?有什么不同?

Kev*_*vin 70

BouncyCastle拥有比Sun提供的默认JCE更多的密码套件和算法.

除此之外,BouncyCastle还有很多用于阅读PEM和ASN.1等神秘格式的工具,没有理智的人会想要自己重写.

  • Sun从未打算成为密码的详尽提供者.这就是为什么JCE使用BC支持的提供者框架http://bouncycastle.org/specifications.html#install.BC的任何用户都应该尽可能通过JCE API使用它. (6认同)

小智 22

Bouncy Castle原产于澳大利亚,因此不受美国加密出口的限制.

如果您在美国境外并且需要管理的密钥大小超过此限制允许的密钥大小,则此功能非常有用.在这种情况下,您不得使用美国的软件.

  • 我想知道实际上还有多少限制,2016年6月?据我所知,只要您在美国商务部工业和安全局(BIS)注册,就不再限制密钥大小,我猜Oracle已经在做了.但这些规定含糊不清(双关语). (5认同)
  • 呃,如果我在美国境外,我不需要获得任何许可。该项目可能需要获得许可才能运送某些东西。 (3认同)

ZZ *_*der 8

在服务器或桌面上,除非您必须处理Sun JCE不支持的一些遗留密码或格式,否则我认为没有任何理由使用BC.

但是,许多JRE没有JCE提供程序,如移动或嵌入式环境.BC在这种情况下很方便.

  • 在服务器上肯定有一个原因,如果你的服务器使用TLS并且你关心安全性(如果你没有,你为什么要使用TLS?).JCE附带的密码套件仅包括CBC模式的AES,它有几个已知问题:http://googleonlinesecurity.blogspot.dk/2013/11/a-roster-of-tls-cipher-suites-weaknesses.html . (2认同)