У меня возникла проблема с сериализацией объекта cipherinputstream. Я всегда получаю это исключение всякий раз, когда я пытаюсь сделать это, вот фрагмент моего кодаКак сериализовать и десериализовать объект CipherInputStream
public class Crypto implements java.io.Serializable
{
public Crypto(String filename)
{
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5PADDING");
SecretKeySpec secretkey = new SecretKeySpec(key(), "AES");
cipher.init(Cipher.ENCRYPT_MODE, secretkey);
CipherInputStream cipt = new CipherInputStream(new FileInputStream(new File(filename)), cipher)
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream obj = null;
try
{
obj = new ObjectOutputStream(baos);
obj.writeObject(cipt);
byte[] bv = baos.toByteArray();
System.out.println(bv);
}
catch(Exception b)
{
b.printStackTrace();
}
finally
{
obj.close();
baos.close();
}
}
}
Исключение:
java.io.NotSerializableException: javax.crypto.CipherInputStream.
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180)
Может кто-нибудь помочь мне сделать это. Моя цель - преобразовать объект cipherinputstream в байты или bytearrays.
Был ли U реализован сериализуемым? –
Чего вы хотите достичь? Вы хотите написать сам шифр или действительно объект 'CipherInputStream'? –
объект CipherInputStream –