В настоящее время я использую DES в качестве практического метода для шифрования / дешифрования данных (я знаю, что это не отраслевая практика!), И я сталкиваюсь с ошибкой при дешифровании (вот вывод):
java.security.InvalidKeyException: Parameters missing
at com.sun.crypto.provider.CipherCore.init(CipherCore.java:469)
at com.sun.crypto.provider.DESCipher.engineInit(DESCipher.java:186)
at javax.crypto.Cipher.implInit(Cipher.java:802)
at javax.crypto.Cipher.chooseProvider(Cipher.java:864)
at javax.crypto.Cipher.init(Cipher.java:1249)
at javax.crypto.Cipher.init(Cipher.java:1186)
at CryptoPrac.Encrypt_Decrypt.Decrypt(Encrypt_Decrypt.java:68)
at CryptoPrac.Crypto_Main.main(Crypto_Main.java:35)
Это мой код:
public byte[] Decrypt(byte[] encrypted)
{
try
{
KeyStore keyStore = KeyStore.getInstance("JCEKS");
keyStore.load(new FileInputStream("output.jceks"), "password".toCharArray());
SecretKey key = (SecretKey) keyStore.getKey("key", "password".toCharArray());
System.out.println(key.toString());
Cipher deCipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
deCipher.init(Cipher.DECRYPT_MODE, key);
return deCipher.doFinal(encrypted);
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
return null;
}
Я думаю, что это может быть проблемой из-за того, что я пытаюсь привести getKey в качестве секретного ключа, но я не уверен, как это сделать иначе (ключхранится в хранилище ключей как секретный ключ, но он возвращает ошибку, когда ее там нет).
edit: у меня есть файлы политики .jars в ссылочных библиотеках, потому что я думаю, что это может быть проблема сих не признают.