当前位置: 首页 > 知识库问答 >
问题:

在什么情况下,我会使用非默认Java加密提供程序?

朱兴安
2023-03-14

我的应用程序是一个web(Hibernate,Spring)无移动客户端。我需要一个AES算法与256密钥大小,以保护后端表中的金融敏感数据。我是密码学新手。

共有1个答案

鲁鹏
2023-03-14

EJP明确指出了何时使用外部提供程序,但我将在这里详细说明答案:

  1. 如果您要查找的功能不是由JCE提供的;这可能是因为算法--它可以是密码、模式和填充的组合--没有实现(EJP);
  2. 相关:如果支持的算法不支持您的用例(例如,未命名的EC曲线);
  3. 如果算法实现没有适合您的属性(例如,速度);
  4. 如果您想在硬件HSM、智能卡、TPM模块等中使用密钥,那么现在通常通过Sun PKCS#11提供商访问这些密钥;
  5. 如果希望获得特定的支持,例如IAIK提供程序具有兼容性列表,并为其实现提供支持;
  6. 如果要使用NSS库或其他(部分)软件PKCS#11实现(再次使用Sun PKCS#11提供程序);
  7. 如果需要FIPS认证(例如,Bouncy Castle正在进行FIPS认证);
  8. 如果实现的算法没有提供所需的名称或别名;

但是,使用Oracle提供程序的原因有很多:

    null

请注意--通常--在软件本身中显式指定提供者是不明智的(使用getInstance()工厂方法,最好将此留给系统

如果您想在软件中简单地使用AES/CBC加密而不需要FIPS,那么我建议您坚持使用默认的/SunJCE提供程序。Bouncy Castle提供程序对于以字节码表示的AES来说要慢得多。如果支持AES-NI,如果SunJCE的速度是Bouncy的四倍,我也不会感到惊讶。

 类似资料:
  • 问题内容: 试图了解熊猫某些功能背后的设计原理。 如果我有一个3560行18列的DataFrame,那么 是3560,但是 是18。 也许对于来自R的人来说这很自然;对我来说,感觉不太“ Pythonic”。是否在某处介绍了熊猫的基本设计原理? 问题答案: DataFrame主要是基于列的数据结构。在后台,DataFrame内部的数据存储在块中。大致来说,每个dtype都有一个块。 每列都有一个d

  • 是否有任何方法可以将外部脚本包含(或加载)到脚本引擎,以便外部脚本中定义的所有函数都可以在方法中使用? 在我们的应用程序中,我们根据用户输入执行一些java脚本代码。当用户请求时,应用程序会创建一个ScriptEngine实例并根据输入参数执行适当的javascript代码。 这里的问题是javascript中有一些重复的功能。考虑一个例子: 场景1:当用户输入为十进制纬度和经度时,计算距离 -

  • 问题内容: 谁能向我解释为什么Hibernate 默认情况下不设置注释,而是允许实体根据当前设置的属性生成INSERT? 什么是不使用的原因,因此默认情况下包括所有实体属性? 问题答案: @ jb-nizet说了什么。 另外,在我的书中是个坏主意。 从生成的SQL跳过空字段,很快您将发现自己处于声明列的情况,这实际上导致持久数据与休眠知道的实体数据不同。这会造成挫败感,并可能使您诉诸昂贵的电话。

  • 问题内容: 我设法在我的应用程序中使用Sun的MSCAPI提供程序。我现在遇到的问题是,即使我在代码中提供了密码,它也总是会弹出一个窗口,要求输入密码。这是一个问题,因为我需要Web服务中的加密功能。 这是我现在拥有的代码: 这很好用,但是在最后一行运行时,我弹出一个对话框,要求输入密码。我该如何预防? 问题答案: MSCAPI提供程序不支持将密码提供给CAPI: 假定必须提供密码的应用程序支持兼

  • 问题内容: 今天,在浏览各种问题时,我遇到了一个问题,在我看来有点不可思议,为什么一个人要在上面加上a ,对于这种情况会不会有什么真正的原因,所以这只是微不足道的吗? 问题答案: 动画图像作为GUI的BG。我使用HTML来调整此尺寸(x3),但是如果它已经是所需的尺寸,则可以直接将其设置为标签的。 不知道它是否是“真正的”。这似乎是一个主观术语,需要更多说明。我从来没有使用过这种方法,只是想通了,

  • 本文向大家介绍在默认的情况下,使用h1标签呈现出什么效果?相关面试题,主要包含被问及在默认的情况下,使用h1标签呈现出什么效果?时的应答技巧和注意事项,需要的朋友参考一下