java PBewithHMACSHA512和256biates组织。贾斯普特。例外情况。EncryptionInitializationException(Jasypt)
我正在尝试使用Jasypt加密和解密密码。我将代码编写为:
// Constructor
public Encrypt() {
super();
pooledPBEStringEncryptor = new PooledPBEStringEncryptor();
pooledPBEStringEncryptor.setPassword(encryptionKey);
pooledPBEStringEncryptor.setAlgorithm("PBEWITHHMACSHA512AND256BITAES");
pooledPBEStringEncryptor.setPoolSize(4);
pooledPBEStringEncryptor.setSaltGenerator(new RandomSaltGenerator());
}
encryptionKey
是一个静态字符串。要加密的代码是:
public static String encryptIt(String value) {
String encrypted = null;
// Encrypt & Encode
try {
encrypted = pooledPBEStringEncryptor.encrypt(value);
} catch (Exception e) {
throw new RuntimeException("Security Error in doEncrypt: " + e);
}
return encrypted;
}
现在当我运行代码时。我得到一个错误:
org.jasypt.exceptions.EncryptionInitializationException: java.lang.ExceptionInInitializerError
at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.initialize(StandardPBEByteEncryptor.java:773)
at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.cloneAndInitializeEncryptor(StandardPBEByteEncryptor.java:535)
at org.jasypt.encryption.pbe.StandardPBEStringEncryptor.cloneAndInitializeEncryptor(StandardPBEStringEncryptor.java:483)
at org.jasypt.encryption.pbe.PooledPBEStringEncryptor.initialize(PooledPBEStringEncryptor.java:405)
at org.jasypt.encryption.pbe.PooledPBEStringEncryptor.encrypt(PooledPBEStringEncryptor.java:456)
at com.gtt.common.Encrypt.doEncrypt(Encrypt.java:96)
at com.gtt.common.Encrypt.main(Encrypt.java:278)
Caused by: java.lang.ExceptionInInitializerError
at java.lang.J9VMInternals.ensureError(J9VMInternals.java:147)
at java.lang.J9VMInternals.recordInitializationFailure(J9VMInternals.java:136)
at javax.crypto.SecretKeyFactory.a(Unknown Source)
at javax.crypto.SecretKeyFactory.<init>(Unknown Source)
at javax.crypto.SecretKeyFactory.getInstance(Unknown Source)
at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.initialize(StandardPBEByteEncryptor.java:761)
... 6 more
Caused by: java.lang.SecurityException: Cannot set up certs for trusted CAs
at javax.crypto.b.<clinit>(Unknown Source)
... 10 more
Caused by: java.lang.SecurityException: Jurisdiction policy files are not signed by trusted signers!
at javax.crypto.b.a(Unknown Source)
at javax.crypto.b.c(Unknown Source)
at javax.crypto.b.access$600(Unknown Source)
at javax.crypto.b$a.run(Unknown Source)
at java.security.AccessController.doPrivileged(AccessController.java:734)
... 11 more
Exception in thread "main" java.lang.RuntimeException: Security Error in doEncrypt: org.jasypt.exceptions.EncryptionInitializationException: java.lang.ExceptionInInitializerError
at com.gtt.common.Encrypt.doEncrypt(Encrypt.java:101)
at com.gtt.common.Encrypt.main(Encrypt.java:278)
现在,最初我得到了EncryptionNotPossible
异常。但我在谷歌上搜索了一下,发现我需要将JCE JAR(本地和美国政策)放到我的JRE安全文件夹中。这样做之后,我得到了这个错误。你能告诉我我做错了什么吗?我正在使用JDK1。8如果有任何用处
共 (0) 个答案