Konfiguracja szyfrowania Java kończy się niepowodzeniem z wyjątkiem InvalidKeySpecException
Próbuję napisać prostą aplikację, która pobiera przesłane pliki i szyfruje je przed zapisaniem na dysku.
tutaj jest fragment
InputStream is = item.openStream(); // item is obtained from file upload iterator
try{
PBEKeySpec keySpec = new PBEKeySpec(passphrase.toCharArray(), salt.getBytes(), iterations, keyLength);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DESede");
SecretKey key = keyFactory.generateSecret(keySpec); // Throws Exception
CipherInputStream cis;
Cipher cipher = Cipher.getInstance("RSA");
cis = new CipherInputStream(is, cipher);
cipher.init(Cipher.ENCRYPT_MODE, key);
} catch (Exception ex){
// catches the following exceptopn
java.security.spec.InvalidKeySpecException: Inappropriate key specification
at com.sun.crypto.provider.DESedeKeyFactory.engineGenerateSecret(DashoA13*..)
//
}
Próbowałem również „RSA / ECB / PKCS1Padding” bez powodzenia. Co zrobiłem źle?