GUJ
Notícias, artigos e o maior fórum brasileiro sobre Java
home
fórum
notícias
tópicos recentes
empregos
artigos
Bem-vindo ao GUJ.
Crie seu login
, ou digite-o para logar no site.
Usuário:
Senha:
Encriptar ficheiro
Índice dos Fóruns
»
Java Avançado
Autor
Mensagem
20/11/2008 14:19:17
Assunto:
Encriptar ficheiro
LuisClaudioPJ
JavaEvangelist
Membro desde: 26/07/2005 00:00:00
Mensagens: 349
Offline
Boas pessoal,
Esta é a classe que tem os metodos de encriptação e desencriptação que eu apanhei no google em java almanac em
http://www.exampledepot.com/egs/javax.crypto/DesFile.html
public class DesEncrypter { Cipher ecipher; Cipher dcipher; DesEncrypter(SecretKey key) { // Create an 8-byte initialization vector byte[] iv = new byte[]{ (byte)0x8E, 0x12, 0x39, (byte)0x9C, 0x07, 0x72, 0x6F, 0x5A }; AlgorithmParameterSpec paramSpec = new IvParameterSpec(iv); try { ecipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); dcipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); // CBC requires an initialization vector ecipher.init(Cipher.ENCRYPT_MODE, key, paramSpec); dcipher.init(Cipher.DECRYPT_MODE, key, paramSpec); } catch (java.security.InvalidAlgorithmParameterException e) { } catch (javax.crypto.NoSuchPaddingException e) { } catch (java.security.NoSuchAlgorithmException e) { } catch (java.security.InvalidKeyException e) { } } // Buffer used to transport the bytes from one stream to another byte[] buf = new byte[1024]; public void encrypt(InputStream in, OutputStream out) { try { // Bytes written to out will be encrypted out = new CipherOutputStream(out, ecipher); // Read in the cleartext bytes and write to out to encrypt int numRead = 0; while ((numRead = in.read(buf)) >= 0) { out.write(buf, 0, numRead); } out.close(); } catch (java.io.IOException e) { } } public void decrypt(InputStream in, OutputStream out) { try { // Bytes read from in will be decrypted in = new CipherInputStream(in, dcipher); // Read in the decrypted bytes and write the cleartext to out int numRead = 0; while ((numRead = in.read(buf)) >= 0) { out.write(buf, 0, numRead); } out.close(); } catch (java.io.IOException e) { } } }
eu criei uma classe que tem um metodo que chama a class acima e usa o metodo encript da seguinte forma :
try { key = KeyGenerator.getInstance("DES").generateKey(); System.out.println(key); // Create encrypter/decrypter class DesEncrypter encrypter = new DesEncrypter(key); // Encrypt String nfile = new String (lemails.getSelectedValue().toString().trim()); encrypter.encrypt(new FileInputStream("processados/"+nfile), new FileOutputStream("processados/"+ nfile+"_"+key)); // Decrypt /* encrypter.decrypt(new FileInputStream("ciphertext"), new FileOutputStream("cleartext2")); */ } catch (Exception e) { e.printStackTrace(); }
tudo funciona beleza .
O problema está em desencriptar este ficheiro encriptado. Quando tento usar o metodo decrypt ele criar um novo ficheiro mas ainda encriptado .
~try { SecretKey key = KeyGenerator.getInstance("DES").generateKey(); System.out.println(key); DesEncrypter encrypter = new DesEncrypter(key); String nfile = new String (lemails.getSelectedValue().toString().trim()); // Decrypt encrypter.decrypt(new FileInputStream("processados/"+nfile), new FileOutputStream("processados/cleartext2.txt")); }catch(Exception ex){ ex.printStackTrace(); }
minha duvida é :
Como faço para poder desencriptar este ficheiro
Índice dos Fóruns
»
Java Avançado
Ir para:
Selecione um Fórum
Notícias
Assuntos gerais (Off-topic)
MundoJ - Artigos, Notícias e Debates
Artigos e Tutoriais
Java Básico
Java Avançado
Ferramentas, Frameworks e Utilitários
Desenvolvimento Web
Interface Gráfica
Google Android e Java Micro Edition (ME)
Certificação Java
Persistência: Hibernate, JPA, JDBC e outros
Java Enterprise Edition (Java EE)
Frameworks e Bibliotecas brasileiros
RIA - Flex, JavaFX e outros
Arquitetura de Sistemas
Metodologias de Desenvolvimento e Testes de Software
Ruby & Ruby on Rails
Outras Linguagens
Powered by
JForum 2.1.8
©
JForum Team