Imaginsystems


Tecniche di Programmazione - Codici Sorgenti - News Informatiche
Archivio Posts
Anno 2014

Anno 2013

Anno 2012
Statistiche
  • Views Home Page: 61.088
  • Views Posts: 471.684
  • Views Gallerie: 0
  • n° Posts: 210
  • n° Commenti: 224

JAVA - GENERARE HASH MD5/SHA DI UN FILE (Codice)

JAVA - GENERARE HASH MD5/SHA DI UN FILE (Codice)


 

Oggi vi voglio mettere a disposizione la possibilità di calcolare Hash di un file con l'algoritmo MD5/SHA .Potete verificare se due file sono uguali e quindi hanno lo stesso Hash oppure sono diversi.. 

Come potete usare la libreria :

       CODICE JAVA - HashFile.java :
public static void main(String[] args) {
// TODO Auto-generated method stub
HashFile hashFile = new HashFile("Originale.txt","SHA");
HashFile hashFile1 = new HashFile("Originale.txt","MD5");
System.out.println(hashFile.equals(hashFile1)); //False

// Risposta della funzione equals()
// false // SHA: 44d3a83db52a0cf0f908ad0ef55c83f4771f66ad // MD5: ed0a96e83ab7b0910fcbcc131b2e6b82

System.out.println("SHA: " + hashFile.HashFileGenera());
System.out.println("MD5: " + hashFile1.HashFileGenera());
System.out.println(hashFile.toString());

}
       CODICE JAVA - HashFile.java :
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;


public class HashFile {

private File file;
private String Algoritmo;
public HashFile(String filename,String Algoritmo){
this.file = new File(filename);
this.Algoritmo = Algoritmo;
}
public String HashFileGenera() {
String output;
try{
MessageDigest digest = MessageDigest.getInstance(this.Algoritmo);
InputStream is = new FileInputStream(file);                
byte[] buffer = new byte[8192];
int read = 0;
try {
    while( (read = is.read(buffer)) > 0) {
        digest.update(buffer, 0, read);
    }       
    byte[] md5sum = digest.digest();
    BigInteger bigInt = new BigInteger(1, md5sum);
    output = bigInt.toString(16);
//    System.out.println("MD5: " + output);
    return output;
}
catch(IOException e) {
    throw new RuntimeException("Unable to process file for "+this.Algoritmo, e);
}
finally {
    try {
        is.close();
    }
    catch(IOException e) {
        throw new RuntimeException("Unable to close input stream for "+this.Algoritmo+" calculation", e);
    }
}       
 }catch(NoSuchAlgorithmException | FileNotFoundException e){
      e.printStackTrace();
     }
return Algoritmo;
}
public String toString(){
return (
"" + this.Algoritmo + " : " + this.HashFileGenera()
);
}

public boolean equals(Object o){
HashFile p = (HashFile) o;
return ( this.HashFileGenera().equals(p.HashFileGenera())
);
}

}
Potete scaricare il file d'esempio :

Password :  "ImaginSystem" 
Link File Download : Download

By ImaginSystems & Queen Gin   
Categoria: JAVA
martedì, 17 set 2013 Ore. 20.58

Messaggi collegati


Ora e Data
Mappa
Blogs Amici
    Copyright © 2002-2007 - Blogs 2.0
    dotNetHell.it | Home Page Blogs
    ASP.NET 2.0 Windows 2003