Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente bannato
    Registrato dal
    Jun 2009
    Messaggi
    91

    Calcolare l' hash per ogni file

    Qualcuno sa dirmi come calcolare l' hash relativo ad un file?Mi spiego meglio per ogni file ad esempio pippo.xml devo calcolare l' hash...Mi chiedevo se esisteva gia' qualche metodo in java e quindi poter importare qualche libreria...

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Devi solo vedere che hash ti va bene... per esempio per MD5

    http://www.rgagnon.com/javadetails/java-0416.html
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente bannato
    Registrato dal
    Jun 2009
    Messaggi
    91
    Io del file condosco solo il nome, se anche MD5 va bene.....come faccio quale metodo chiamo se ho da calcolare l' hash per il file pippo.xml...

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ma l'hai letto? In ingresso quel programma prende il nome di un file, in uscita restituisce l'hash md5... di più che vuoi?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Calcolare l' hash per ogni file

    Originariamente inviato da mery messina
    Qualcuno sa dirmi come calcolare l' hash relativo ad un file?
    Se guardi tra i miei Java Examples, nella sezione Security trovi un esempio bello pronto.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente bannato
    Registrato dal
    Jun 2009
    Messaggi
    91
    ho visitato la tua area security ma non riesco a capire quale sia l' esempio.... mi indichi il prototipo del metodo al quale ti riferisci!!!
    Grazie

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da mery messina
    ho visitato la tua area security ma non riesco a capire quale sia l' esempio....
    Al momento ce n'è 1 solo di sorgente .... quello è! E non mi sembra così difficile: usa diversi (4) MessageDigest ma a parte questo apre il file, aggiorna tutti i digest e poi stampa i risultati alla fine ..
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Utente bannato
    Registrato dal
    Jun 2009
    Messaggi
    91
    Buongiorno ragazzi....
    Ieri ho aperto questa discussione,mi è stato dato qualche suggerimento,ma non ho risolto il problema...
    Qualcuno oggi potrebbe darmi una mano spiegandomi come implementare un metodo che dato il nome ad esempio pippo.xml mi restituisce l' hash???
    Pongo nuovamente la stessa domanda ma non esiste una libreria java che al suo interno presenta un metodo che calcolo l' hash...
    Ho cercato su diversi motori di ricerca,ma non ho trovato niente...Grazie

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da mery messina
    Qualcuno oggi potrebbe darmi una mano spiegandomi come implementare un metodo che dato il nome ad esempio pippo.xml mi restituisce l' hash???
    Ciao, ma allora non hai compreso nulla dell'esempio sul mio sito??? Scusa se te lo chiedo .... ma vista la tua risposta faccio le mie deduzioni .....

    Nel package java.security c'è una classe, MessageDigest, che permette di sfruttare vari tipi di "algoritmi" di hash ... quelli che sono ovviamente disponibili e implementati (gli algoritmi sono "pluggabili" all'interno del framework).

    Un MessageDigest non lo ottieni facendo new MessageDigest(...) ma lo ottieni da un metodo static "factory" che è getInstance().

    Quindi es.

    codice:
    MessageDigest md = MessageDigest.getInstance("MD5");
    Se vai a vedere la documentazione javadoc (cosa che suggerisco), vedrai che ha 4 metodi update:

    codice:
    void update(byte input)
    void update(byte[] input)
    void update(byte[] input, int offset, int len)
    void update(ByteBuffer input)
    Tutta la sequenza di byte di cui devi generare l'hash la devi far passare a questi metodi. Chiaramente quale metodo usare dipende da come ti arrivano i byte. Se devi leggere un file, non vai certo ad usare il primo per passare 1 byte per volta!!! Leggi il file a "blocchi" di tot byte e quindi usi il terzo update(), quello che ha il len.

    Alla fine di tutto usi digest() per ottenere il valore del hash (sotto forma di byte[]).

    Tutto qui.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    Utente bannato
    Registrato dal
    Jun 2009
    Messaggi
    91
    che dovevo usare quel file lo avevo capito....
    infatti ho scritto questo codice:


    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;

    import java.io.*;
    import java.security.MessageDigest;
    import java.security.*;

    public class button3Listener implements ActionListener {


    public void actionPerformed(ActionEvent e)
    {
    private static void fileDigestsUpdate(String filename, MessageDigest[] digests)
    throws IOException {


    FileInputStream fis = new FileInputStream(filename);

    try {
    byte[] buffer = new byte[4096];
    int len;

    while ((len = fis.read(buffer)) > 0) {
    for (int i = 0; i < digests.length; i++) {
    if (digests[i] != null) {
    digests[i].update(buffer, 0, len);
    }
    }
    }
    } finally {
    fis.close();

    }
    }
    }

    }

    eclipse mi sottolinea in rosso fileDigestsUpdate(....) poi non ho capito come faccio a invocare tale metodo e a passare il nome del file che voglio calcolare l' hash......
    oggi non capisco niente.....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.