Encriptar Archivos
Publicado por Luz Sabina Martínez (3 intervenciones) el 11/06/2009 17:43:56
Hola Compañeros!!
Tengo un gran problema, necesito encriptar archivos y desencriparlos, ene l internet encontré un código para hacer eso, pero mi problema es que ya no desencripta, alguien me podría ayudar con eso, aquí les anexo el código para que le hechen un ojo y si me pueden ayudar a resolver mi problema se los agradecería.
Saludos.
package ejemplos;
import java.io.*;
import javax.crypto.*;
import javax.crypto.spec.*;
import java.security.*;
import java.security.spec.*;
import java.util.*;
public class EncryptTest {
public static void main(String args[]) {
File desFile = new File("D:\Desarrollo\Ejemplos\Ejemplos\uno.xls");
// Create data to encrypt
Map map = new TreeMap(System.getProperties());
int number = map.size();
try {
// Create Key
KeyGenerator kg = KeyGenerator.getInstance("DES");
SecretKey secretKey = kg.generateKey();
// Create Cipher
Cipher desCipher =
Cipher.getInstance("DES/ECB/PKCS5Padding");
desCipher.init(Cipher.ENCRYPT_MODE, secretKey);
// Create stream
FileOutputStream fos = new FileOutputStream(desFile);
BufferedOutputStream bos = new BufferedOutputStream(fos);
CipherOutputStream cos = new CipherOutputStream(bos, desCipher);
ObjectOutputStream oos = new ObjectOutputStream(cos);
// Write objects
oos.writeObject(map);
oos.writeInt(number);
//oos.flush();
oos.close();
// Change cipher mode
desCipher.init(Cipher.DECRYPT_MODE, secretKey);
// Create stream
FileInputStream fis = new FileInputStream(desFile);
BufferedInputStream bis = new BufferedInputStream(fis);
CipherInputStream cis = new CipherInputStream(bis, desCipher);
ObjectInputStream ois = new ObjectInputStream(cis);
// Write objects
//ois.reset();
//ois.close();
// Read objects
Map map2 = (Map)ois.readObject();
int number2 = ois.readInt();
ois.close();
// Compare original with what was read back
if (map.equals(map2) && (map.size() == number2)) {
System.out.println("Everything read back out okay.");
} else {
System.out.println("Problems during encryption/decryption process.");
}
} catch (NoSuchPaddingException e) {
System.err.println("Padding problem: " + e);
} catch (NoSuchAlgorithmException e) {
System.err.println("Invalid algorithm: " + e);
} catch (InvalidKeyException e) {
System.err.println("Invalid key: " + e);
} catch (IOException e) {
System.err.println("I/O Problem: " + e);
} catch (ClassNotFoundException e) {
System.err.println("Class loading Problem: " + e);
} finally {
if (desFile.exists()) {
//desFile.delete();
}
}
}
}
Tengo un gran problema, necesito encriptar archivos y desencriparlos, ene l internet encontré un código para hacer eso, pero mi problema es que ya no desencripta, alguien me podría ayudar con eso, aquí les anexo el código para que le hechen un ojo y si me pueden ayudar a resolver mi problema se los agradecería.
Saludos.
package ejemplos;
import java.io.*;
import javax.crypto.*;
import javax.crypto.spec.*;
import java.security.*;
import java.security.spec.*;
import java.util.*;
public class EncryptTest {
public static void main(String args[]) {
File desFile = new File("D:\Desarrollo\Ejemplos\Ejemplos\uno.xls");
// Create data to encrypt
Map map = new TreeMap(System.getProperties());
int number = map.size();
try {
// Create Key
KeyGenerator kg = KeyGenerator.getInstance("DES");
SecretKey secretKey = kg.generateKey();
// Create Cipher
Cipher desCipher =
Cipher.getInstance("DES/ECB/PKCS5Padding");
desCipher.init(Cipher.ENCRYPT_MODE, secretKey);
// Create stream
FileOutputStream fos = new FileOutputStream(desFile);
BufferedOutputStream bos = new BufferedOutputStream(fos);
CipherOutputStream cos = new CipherOutputStream(bos, desCipher);
ObjectOutputStream oos = new ObjectOutputStream(cos);
// Write objects
oos.writeObject(map);
oos.writeInt(number);
//oos.flush();
oos.close();
// Change cipher mode
desCipher.init(Cipher.DECRYPT_MODE, secretKey);
// Create stream
FileInputStream fis = new FileInputStream(desFile);
BufferedInputStream bis = new BufferedInputStream(fis);
CipherInputStream cis = new CipherInputStream(bis, desCipher);
ObjectInputStream ois = new ObjectInputStream(cis);
// Write objects
//ois.reset();
//ois.close();
// Read objects
Map map2 = (Map)ois.readObject();
int number2 = ois.readInt();
ois.close();
// Compare original with what was read back
if (map.equals(map2) && (map.size() == number2)) {
System.out.println("Everything read back out okay.");
} else {
System.out.println("Problems during encryption/decryption process.");
}
} catch (NoSuchPaddingException e) {
System.err.println("Padding problem: " + e);
} catch (NoSuchAlgorithmException e) {
System.err.println("Invalid algorithm: " + e);
} catch (InvalidKeyException e) {
System.err.println("Invalid key: " + e);
} catch (IOException e) {
System.err.println("I/O Problem: " + e);
} catch (ClassNotFoundException e) {
System.err.println("Class loading Problem: " + e);
} finally {
if (desFile.exists()) {
//desFile.delete();
}
}
}
}
Valora esta pregunta


0