26/09/09 17:07
eddiewrc
secondo me ti devi spiegare un po' meglio. cmq non mi sembra niente di infattibile, se ho capito bene!
aaa
26/09/09 18:36
netarrow
fattibile è fattibile.
ma fai prima a usare un semplice SSL e via, senza complicarti la vita e cifrare con chiavi diverse per ogni porzione di file.
Anche dovresti far scambiare a client e server più chiavi e diventa scocciante doversi gestire con qualche chiave decifrare quale porzione.
se con SSL cifri tutto il flusso dati della socket e usi una chiave decentemente grande tipo 1024/2048 bit stai certo che chi eventualmente si mette in mezzo alla connessione per sniffare i dati non capisce nulla.
poi java supporta SSL nella core standard, crei un SSLSocket e senza pensarci tu sarà tutto cifrato.
ma fai prima a usare un semplice SSL e via, senza complicarti la vita e cifrare con chiavi diverse per ogni porzione di file.
Anche dovresti far scambiare a client e server più chiavi e diventa scocciante doversi gestire con qualche chiave decifrare quale porzione.
se con SSL cifri tutto il flusso dati della socket e usi una chiave decentemente grande tipo 1024/2048 bit stai certo che chi eventualmente si mette in mezzo alla connessione per sniffare i dati non capisce nulla.
poi java supporta SSL nella core standard, crei un SSLSocket e senza pensarci tu sarà tutto cifrato.
aaa
27/09/09 9:35
Oneshot
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();
}
}
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();
}
}
aaa