Java problem z SHA

0
 
package thread1;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.security.DigestInputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.logging.Level;
import java.util.logging.Logger;



public class Main extends Thread {
    private File input;
    Main(File input)
    {
        this.input = input;
    } 
    
    @Override
    @SuppressWarnings("empty-statement")
    public void run()
    {
        System.out.println("Watek : Wykonuje zadanie");
        try 
        {
            FileInputStream in = new FileInputStream(input);
            MessageDigest sha = MessageDigest.getInstance("SHA");
            DigestInputStream din = new DigestInputStream(in, sha);
            int b;
            while((b = din.read()) != -1)
            {
                
            }
            din.close();
            byte[] digest = sha.digest();
            StringBuffer result = new StringBuffer(input.toString());
            result.append(":");
            for(int i=0; i<digest.length; ++i)
            {
                result.append((int)digest[i]+ "");
            }
            System.out.println(result);
            
        }catch (FileNotFoundException ex) 
        {
            System.out.println("Nie otworzyłem pliku do czytania.");
        }
        catch (IOException ex) 
        {
            System.out.println("Blad imput/output");
        } 
        catch (NoSuchAlgorithmException ex) 
        {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        } 
        
        
        
        
        System.out.println("Watek : umieram");
    }
    public static void main(String[] args) 
    {
         
        for(int i = 0; i < args.length; ++i)
        {
            System.out.println("Ja dzialam suko"); 
            File f = new File(args[i]);
            Thread thread = new Main(f);
            thread.start();
            
        }

    }

}

Jak mógł by mi ktoś wytłumaczyć poniższy kawałek kodu to bym był bardzo wdzięczny

 
MessageDigest sha = MessageDigest.getInstance("SHA");
            DigestInputStream din = new DigestInputStream(in, sha);
            int b;
            while((b = din.read()) != -1)
            {
                
            }
            din.close();
            byte[] digest = sha.digest();
            StringBuffer result = new StringBuffer(input.toString());
            result.append(":");
            for(int i=0; i<digest.length; ++i)
            {
                result.append((int)digest[i]+ "");
            }
            System.out.println(result);

oraz dlaczego mój program pokazuje hash dla słowa ala ma kota -2913-81-126-771048-31-4342-3335-20-96812668276931 anie hash e30daf82b36808e1d52adf23eca0511a441b451f ??

Pozdrawiam Piotr

0

??

0

Pokazuje Ci dobry hash. Musisz tylko każdy bajt wyświetlić jako hex.

1 użytkowników online, w tym zalogowanych: 0, gości: 1