java.security.InvalidKeyException-Parameters-missing-问题解决
目录
java.security.InvalidKeyException: Parameters missing 问题解决
DES解密Parameters missing问题
java.security.InvalidKeyException: Parameters missing
at com.sun.crypto.provider.CipherCore.init(CipherCore.java:460)
at com.sun.crypto.provider.DESCipher.engineInit(DESCipher.java:186)
at javax.crypto.Cipher.implInit(Cipher.java:797)
at javax.crypto.Cipher.chooseProvider(Cipher.java:859)
at javax.crypto.Cipher.init(Cipher.java:1229)
at javax.crypto.Cipher.init(Cipher.java:1166)
at com.first.start.common.util.crypt.DESUtil.decrypt(DESUtil.java:115)
at com.first.start.common.util.crypt.TestCrypt.testDES(TestCrypt.java:70)
at com.first.start.common.util.crypt.TestCrypt.main(TestCrypt.java:13)
在尝试几种 加密/解密算法-工作模式的时候突然间就报了个参数缺失。
问题解决
CBC的方式和ECB的方式在初始化key的时候参数多一个。开始写的字符串在其中感觉长得差不多,就没注意到方式变了,只改了一部分。所以就整好改造了一下写成常量了。
其他相关异常说明
} catch (NoSuchAlgorithmException e) {
throw new NoSuchAlgorithmException("无此加密算法,请检查环境");
} catch (NoSuchPaddingException e) {
throw new NoSuchPaddingException("明文数据未找到");
} catch (InvalidKeyException e) {
throw new InvalidKeyException("加密秘钥非法,请检查");
} catch (IllegalBlockSizeException e) {
throw new IllegalBlockSizeException("明文长度非法");
} catch (BadPaddingException e) {
throw new BadPaddingException("明文数据已损坏");
} catch (Exception e) {
e.printStackTrace();
throw new Exception("其他错误:", e);
}