Ciao,
sto incontrando già problemi nel cifrare un file mp3 con una sola chiave. In pratica quando cerco di aprire il file decifrato non riesco a riprodurlo.
Vi posto qui il codice che ho utilizzato
PS: siccome sto facendo delle prove in questo codice c'è sia il cifratore sil il decifratore, li attivavo/disattivavo commentando/decommentando il codice
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import javax.crypto.*;
import java.security.*;
public class Sperimental {
public static void main (String args[]) throws Exception
{
File file= new File("/home/prova.mp3");
String path=file.getPath();
System.out.println("File da cifrare:"+ path);
KeyGenerator generator= KeyGenerator.getInstance("DES");
generator.init(new SecureRandom());
SecretKey key= generator.generateKey();
Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
// Modalità cifratore
//FileInputStream in =new FileInputStream(file);
//FileOutputStream fileout= new FileOutputStream("/home/cifrato.mp3");
//cipher.init(Cipher.ENCRYPT_MODE, key);
//Modalità decifratore
FileInputStream in= new FileInputStream("/home/cifrato.mp3");
FileOutputStream fileout= new FileOutputStream("/home/decifrato.mp3");
cipher.init(Cipher.DECRYPT_MODE,key);
CipherOutputStream out= new CipherOutputStream(fileout,cipher);
byte [] buffer= new byte[8192];
int length;
while((length=in.read(buffer))!=-1)
{
System.out.println("Il valore di length(espresso in bytes) :"+ length);
out.write(buffer, 0, length);
}
in.close();
out.close();
}
}
|