Hola a todos.
Mi consulta es la siquiente estoy tratando de cifrar un archivo con 3DES(TripleDes) he encontrado ejemplos de como se hace esto con cadenas de texto y funcionan, pero me entro la duda que pasa si es un archivo el que deseo cifrar, no he encontrado ejemplos en la web a ecepcion de este:
Ya lo probe y parece hacer la encritacion bien pero al momento de desencritar me devuelve 0 talvez puedan ayudarme, u orientarme. Saludos.
Esta es la parte de cifrar.
public class Encryptor {
private static String inputFilePath
= "D:/1.txt"; public static void main
(String[] args
) { String keyString
= "140405PX_0.$88"; try {
byte[] fileByteArray = new byte[fileInputStream.available()];
fileInputStream.read(fileByteArray);
for (byte b : fileByteArray) {
}
SecretKey secretKey = getKey(keyString);
Cipher cipher = Cipher.getInstance(algorithm);
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
(new CipherOutputStream
("D:/Secret.file"), cipher));
objectOutputStream.writeObject(fileByteArray);
objectOutputStream.close();
e.printStackTrace();
}
}
String messageToUpperCase
= message.
toUpperCase(); byte[] digestOfPassword = messageToUpperCase.getBytes();
byte[] keyBytes
= Arrays.
copyOf(digestOfPassword,
24); SecretKey key = new SecretKeySpec(keyBytes, "DESede");
return key;
}
}
Esta es descifrar
public class Decryptor {
public static void main
(String[] args
) { try {
File inputFileNAme
= new File("d:/Secret.file"); SecretKey secretKey = getKey(keyString);
Cipher cipher = Cipher.getInstance(algorithm);
cipher.init(Cipher.DECRYPT_MODE, secretKey);
(new CipherInputStream(fileInputStream, cipher));
System.
out.
println(objectInputStream.
available()); while (objectInputStream.available() != 0) {
fileOutputStream.
write((Integer) objectInputStream.
readObject()); System.
out.
println(objectInputStream.
readObject()); }
fileOutputStream.flush();
fileOutputStream.close();
fileInputStream.close();
objectInputStream.close();
e.printStackTrace();
}
}
String messageToUpperCase
= message.
toUpperCase(); byte[] digestOfPassword = messageToUpperCase.getBytes();
byte[] keyBytes
= Arrays.
copyOf(digestOfPassword,
24); SecretKey key = new SecretKeySpec(keyBytes, "DESede");
return key;
}
}