Расшифровка сокета не удалась - PullRequest
0 голосов
/ 11 апреля 2020

Извиняюсь за глупый запрос. Я новичок в экстремальном программировании, но любой вклад будет приветствоваться. Попытка зашифровать файл на сервере и поместить его в SealedObject для отправки клиенту, где он расшифровывается с помощью KeyAgreement. Ошибки не возникают, и новый файл создается, но он все еще кажется зашифрованным.

Сервер

 //Selecting the specific file
        File file = new File("test.txt");


        FileInputStream fileInputStream = new FileInputStream(file);
        byte[] byteFile = new byte[(int) file.length()];

        fileInputStream.read(byteFile);

        fileInputStream.close();

        //Generating the random IV
        SecureRandom sr = new SecureRandom();

        byte[] IV = sr.generateSeed(8);

        out.write(IV);
        IvParameterSpec spec = new IvParameterSpec(IV);

        //==========================            
        //Encryption setup
        Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
        cipher.init(Cipher.ENCRYPT_MODE, desKey, spec);

        byteFile = cipher.doFinal(byteFile);

        SealedObject so = new SealedObject(byteFile, cipher);

        CipherOutputStream cos = new CipherOutputStream(out, cipher);
        ObjectOutputStream outputStream = new ObjectOutputStream(cos);   
        outputStream.writeObject(so);
        outputStream.close();

Клиент

byte[] IV = new byte[8];
    in.read(IV);

    IvParameterSpec spec = new IvParameterSpec(IV);

    Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");

    cipher.init(Cipher.DECRYPT_MODE, desKey, spec);

    try {

        CipherInputStream cipherInputStream = new CipherInputStream(in, cipher);

        ObjectInputStream inputStream = new ObjectInputStream(cipherInputStream);

        SealedObject sealedObject = (SealedObject) inputStream.readObject();

        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("text.txt"));
        oos.writeObject(sealedObject.getObject(cipher));
        oos.close();

        inputStream.close();
    }
    catch (Exception e){
        e.printStackTrace();
    }
...