Nao sei posso mesmo chamar basico a isto (Criptografia) acrescentar dados ao ficheiro cifrado

1 resposta
4
Como adiciono dados (String) a um ficheiro cifrado? Acompanhem o codigo:
System.out.println("Cifrando o ficheiro de alunos");
        System.out.println("Aguarde...");
        String fichVt = "e:/EstudandoDuro/alunos.txt";  // ficheiro normal
        String fichCif = "e:/AprendendoSolucoes/alns.txt"; // ficheiro cifrado
        Cipher cifrar = Cipher.getInstance("DES");
        cifrar.init(Cipher.ENCRYPT_MODE, ks);
        //Ficheiro a ser Encriptado
        InputStream simples = new FileInputStream(fichVt);
        // Ficheiro Encriptado
        OutputStream cifrado = new FileOutputStream(fichCif);
        
       byte[] buffer = new byte[1024];
            byte[] linha;
            String texto_cifrado = new String();
            int fim_arquivo = -1;
            int leidos; // numero de bytes lidos
           
            
            leidos = simples.read(buffer);
            while(leidos!=fim_arquivo)
            {
            linha = cifrar.update(buffer, 0, leidos);
            texto_cifrado = texto_cifrado + new String(linha, "ISO-8859-1");
            leidos = simples.read(buffer);
            }
            simples.close();
            linha = cifrar.doFinal();
            texto_cifrado = texto_cifrado + new String(linha,"ISO-8859-1");
            cifrado.write(texto_cifrado.getBytes("ISO-8859-1"));
            
            System.out.println("Ficheiro Cifrado");
             // adicionando nomes
            System.out.println("Adicionando nomes ao ficheiro");
             // o codigo abaixo adiciona o nome mais ele aparece não cifrado
              String ch = "Manuel Tiago"; // aluno a ser adicionado ao ficheiro
               OutputStream escr = new FileOutputStream(fichCif ,true);
                        OutputStreamWriter osw = new OutputStreamWriter(escr);
                        BufferedWriter bw = new BufferedWriter(osw);
                        bw.append(ch.trim());
                        bw.newLine();
                        bw.close();
Se eu quiser adicionar mais dados (Linhas diferentes) no
alns.txt
- ficheiro cifrado, o que fazer?

1 Resposta

nel

Sem rodeios?
Seja mais claro em seu tópico, não dá de entender sua dúvida e até mesmo no post, ficou bem ambiguo e não sei exatamente qual a sua dúvida/necessidade.

O ideal é que realize a descriptografia do arquivo, adicione as novas informações, refaça a criptografia e gere um novo arquivo.
Recomendo usar o PrintWriter para escrever no arquivo o que desejas.

Não esquece de tratar possíveis exceções e realizar o fechamento dos IO.

Criado 29 de setembro de 2011
Ultima resposta 29 de set. de 2011
Respostas 1
Participantes 2