我的应用程序是一个Web(Hibernate,Spring)没有移动客户端。我需要使用256密钥大小的AES算法来保护后端表中的财务敏感数据。我是密码学的新手。
除了Java Cryptography Architecture之外,还有其他提供商,如Bouncy Castle。仅考虑AES。在Java Cryptography API中,我看到了支持。为了解决要求的性质,我应该考虑其他提供商,如Bouncy Castle或Jasypt?标准Java Cryptography有什么限制?
答案 0 :(得分:3)
EJP明确指出何时使用外部提供商,但我会在这里大大扩展答案:
然而,使用Oracle提供程序的原因有很多:
请注意 - 通常情况下 - 在软件本身中明确指定提供程序是不明智的(使用getInstance()
工厂方法,最好将其留给系统。
如果您只想在没有FIPS要求的软件中使用AES / CBC进行加密,那么我建议您坚持使用默认/ SunJCE提供程序。对于字节码中的AES,Bouncy Castle提供程序要慢得多。如果支持AES-NI,如果SunJCE的速度比Bouncy快四倍,我不会感到惊讶。
答案 1 :(得分:2)
如果您想要的算法或密钥大小未在Standard Names中列出,则需要一个支持它的外部提供商。