在尝试使用 jasypt 加密一些数据时,我遇到了以下异常:
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
我发现了几个问题,所以我通过在我的代码中将 crypto.policy 属性设置为 unlimited 来解决这个问题:
Security.setProperty("crypto.policy", "unlimited");
我在我机器的 JBoss 中部署了 war,它运行良好。但是后来我们尝试将它安装在不同的环境中(不完全由我们管理),它似乎以某种方式忽略了该属性(我有一些日志显示它的值,我可以看到加密前的值是正确的), 因为我们仍然遇到同样的错误。
所以,我的问题是:在 JBoss 中可以配置什么来忽略该属性,即使以编程方式更改时也是如此?
我们检查了那个环境下的Java版本,是"1.8.0_152"
,所以我们认为应该没问题。我们缺少什么?
最佳答案
你遇到了什么错误?如果您遇到上述异常,可能是因为您尚未安装 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files在新的环境中。您可以检查您的机器和新环境中有哪些 JCE。
关于java - JBoss 无限制地忽略加密策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49272578/