gpt4 book ai didi

java - 在 Java AES 加密中使用提供程序

转载 作者:行者123 更新时间:2023-12-01 17:50:17 25 4
gpt4 key购买 nike

这可能是一个菜鸟问题,但我对提供商的工作方式感到困惑。我试过读这个https://docs.oracle.com/javase/7/docs/technotes/guides/security/overview/jsoverview.html但这对我来说不太有意义。假设我们有:

Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding", "BC")

Cipher cipher= Cipher.getInstance("AES/CBC/PKCS5Padding")

根据链接,听起来提供商指示了正在使用的实现,但 AES/CBC/PKCS5Padding 基本上与提供商无关吗?在这个例子中,充气城堡(我猜“BC”对应的)是否碰巧有比默认实现更有效的算法?感谢您抽出时间。

最佳答案

isn't AES/CBC/PKCS5Padding basically the same independent of the provider?

是的,确实如此。

In the example does bouncy castle (what I'm guessing "BC" corresponds to) happen to have a more efficient algorithm than the default implementation?

可能不是。特别是在 AES 的情况下,最近的 Oracle 提供商可能比 BouncycaSTLe 快得多,因为他们使用可用的 native AES 硬件。

So why specify the provider?

好吧,我知道你没有问这个,但这似乎就是你要去的地方。在大多数情况下,您不应该指定提供商。一般规则是避免指定提供者,除非您有充分的理由这样做。不指定提供程序可以提高可移植性。

不幸的是,我遇到过一些情况,您可能需要指定提供者。 JCE 中提供的抽象并不能涵盖实践中出现的所有情况。如果您遇到其中一个问题,最好单独提出问题。

关于java - 在 Java AES 加密中使用提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50954927/

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