gpt4 book ai didi

java - 集成测试中的 EncryptionOperationNotPossibleException 但应用程序中没有

转载 作者:行者123 更新时间:2023-11-29 04:48:32 26 4
gpt4 key购买 nike

我在我的 Spring Boot 应用程序中使用 Jasypt 和 BouncycaSTLe。我可以正常运行我的应用程序,并且加密的内容会添加到数据库中。

但是,在运行单元测试时,我得到:

org.jasypt.exceptions.EncryptionOperationNotPossibleException: Encryption raised an exception. A possible cause is you are using strong encryption algorithms and you have not installed the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files in this Java Virtual Machine

为什么它适用于我的应用程序而不适用于集成测试(加载与应用程序相同的 spring 配置)?我使用标准的 Oracle Java 1.8.0_66 从 IntelliJ IDEA 运行这两个。

我正在使用 PBEWithSHA256And256BitAES-CBC-BC 算法。

最佳答案

Java 的默认最大长度为 128 位。

您需要的是一组名为 Java 密码术扩展 (JCE) 无限强度管辖策略文件 的文件,目前可在 Java SE download page 获得。 .此 zip 文件包含几个策略 jar,您需要将其复制到 JRE 的 {java.home}/jre/lib/security 目录中已有的那些之上。

这将使您可以更改 128 位以上的 key 强度

更新

对于 Java 8,它将取决于类路径。如果存在 JCE jar 之一(local_policy.jarUS_export_policy.jar),则启用 JCE 无限加密。也许 Spring Boot 应用程序已实现此依赖关系,但您的测试没有。

可以找到 Java 8 的 JCE jar here

关于java - 集成测试中的 EncryptionOperationNotPossibleException 但应用程序中没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36316570/

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