首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java jasypt突然崩溃

java jasypt突然崩溃
EN

Stack Overflow用户
提问于 2020-07-27 19:32:17
回答 2查看 3.2K关注 0票数 5

从昨天开始,我的文本加密器(Jasypt)无缘无故停止工作。下面是一个代码示例和错误消息。有人知道这是怎么回事吗?

代码示例:

代码语言:javascript
复制
        StrongTextEncryptor crypter = new StrongTextEncryptor();
        crypter.setPassword("Password");
        crypter.encrypt("Test");

错误消息:

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

发布于 2021-02-11 09:11:12

这不是一个直接的答案,但我把它放在这里,以防有人遇到这个问题。

使用Java 1.8.0_275,我得到了一个

代码语言:javascript
复制
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并重试。

票数 7
EN

Stack Overflow用户

发布于 2020-08-11 16:25:35

问题似乎与icu4j有关(至少在我的例子中是这样)。在jasypt Github https://github.com/jasypt/jasypt/commit/d384f9a755af2938bc142f7575365bee42ba5f22更新依赖项和应用程序开始运行时发现此提交。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63114412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档