从昨天开始,我的文本加密器(Jasypt)无缘无故停止工作。下面是一个代码示例和错误消息。有人知道这是怎么回事吗?
代码示例:
StrongTextEncryptor crypter = new StrongTextEncryptor();
crypter.setPassword("Password");
crypter.encrypt("Test");错误消息:
Exception in thread "main" org.jasypt.exceptions.EncryptionInitializationException: java.lang.ExceptionInInitializerError
at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.initialize(StandardPBEByteEncryptor.java:773)
at org.jasypt.encryption.pbe.StandardPBEStringEncryptor.initialize(StandardPBEStringEncryptor.java:566)
at org.jasypt.encryption.pbe.StandardPBEStringEncryptor.encrypt(StandardPBEStringEncryptor.java:644)
at org.jasypt.util.text.StrongTextEncryptor.encrypt(StrongTextEncryptor.java:107)
at A.main(A.java:8)
Caused by: java.lang.ExceptionInInitializerError
at com.ibm.icu.impl.NormalizerDataReader.<clinit>(NormalizerDataReader.java:300)
at com.ibm.icu.impl.NormalizerImpl.<init>(NormalizerImpl.java:288)
at com.ibm.icu.impl.NormalizerImpl.<clinit>(NormalizerImpl.java:35)
at com.ibm.icu.text.Normalizer$Mode.normalize(Normalizer.java:188)
at com.ibm.icu.text.Normalizer.normalize(Normalizer.java:1177)
at com.ibm.icu.text.Normalizer.normalize(Normalizer.java:1146)
at org.jasypt.normalization.Normalizer.normalizeWithIcu4j(Normalizer.java:205)
at org.jasypt.normalization.Normalizer.normalizeToNfc(Normalizer.java:129)
at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.initialize(StandardPBEByteEncryptor.java:718)
... 4 more
Caused by: java.lang.IllegalArgumentException: Invalid version number: Version number may be negative or greater than 255
at com.ibm.icu.util.VersionInfo.getInstance(VersionInfo.java:188)
at com.ibm.icu.impl.ICUDebug.getInstanceLenient(ICUDebug.java:65)
at com.ibm.icu.impl.ICUDebug.<clinit>(ICUDebug.java:69)
... 13 more发布于 2021-02-11 09:11:12
这不是一个直接的答案,但我把它放在这里,以防有人遇到这个问题。
使用Java 1.8.0_275,我得到了一个
java.lang.ExceptionInInitializerError在运行encrypt.sh时。
Jasypt版本1.9.3使用的是icu4j-3.4.4.jar的旧版本。我用icu4j-68_2.jar替换了icu4j-3.4.4.jar,然后我可以运行:
./encrypt.sh input=password password=aSecret algorithm=PBEWithMD5AndDES
没有错误。
有关详细信息,请参阅https://github.com/jasypt/jasypt/issues/58。尽管这与您运行jasypt的方式略有不同,但我还是建议您更新icu4j.jar并重试。
发布于 2020-08-11 16:25:35
问题似乎与icu4j有关(至少在我的例子中是这样)。在jasypt Github https://github.com/jasypt/jasypt/commit/d384f9a755af2938bc142f7575365bee42ba5f22更新依赖项和应用程序开始运行时发现此提交。
https://stackoverflow.com/questions/63114412
复制相似问题