Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [JAVA] MessageDigest

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    196

    [Java] messages digest

    Salve da premettere che sono un neofita,vorrei un aiutino in merito al mio problema.
    Ho trovato il seguente codice che permette di firmara tramite funzione hash un file e permette con quale algoritmo generare la funzione di hash.


    code


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

    public class MessageDigestEncoder {
    static private byte [] loadByteData (String filename) {
    FileInputStream fis = null;
    try {
    fis = new FileInputStream (filename);
    BufferedInputStream bis = new BufferedInputStream (fis);
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    int ch;
    while ((ch = bis.read()) != -1) {
    baos.write (ch);
    }
    return baos.toByteArray();
    } catch (IOException e) {
    if (fis != null) {
    try {
    fis.close();
    } catch (IOException ee) {
    // ignore
    }
    }
    return null;
    }
    }
    static private String hexDigit(byte x) {
    StringBuffer sb = new StringBuffer();
    char c;
    // First nibble
    c = (char) ((x >> 4) & 0xf);
    if (c > 9) {
    c = (char) ((c - 10) + 'a');
    } else {
    c = (char) (c + '0');
    }
    sb.append (c);
    // Second nibble
    c = (char) (x & 0xf);
    if (c > 9) {
    c = (char)((c - 10) + 'a');
    } else {
    c = (char)(c + '0');
    }
    sb.append (c);
    return sb.toString();
    }
    static private String computeDigest (MessageDigest algorithm, String filename) {
    byte[] content = loadByteData (filename);
    if (content != null) {
    algorithm.reset();
    algorithm.update (content);
    byte digest[] = algorithm.digest();
    StringBuffer hexString = new StringBuffer();
    int digestLength = digest.length;
    for (int i=0;i<digestLength;i++) {
    hexString.append (hexDigit(digest[i]));
    hexString.append (" ");
    }
    return hexString.toString();
    } else {
    return "";
    }
    }
    public static void main (String args[]) {
    MessageDigest algorithm = null;
    if (args.length < 2) {
    System.err.println ("java MessageDigestEncoder SHA-1|MD5 filename(s)");
    System.exit (-1);
    }
    try {
    algorithm = MessageDigest.getInstance (args[0]);
    } catch (NoSuchAlgorithmException e) {
    System.err.println ("Invalid algorithm");
    System.err.println ("java MessageDigestEncoder SHA-1|MD5 filename(s)");
    System.exit (-2);
    }
    int argsLength = args.length;
    for (int i=1;i<argsLength;i++) {
    String digest = computeDigest (algorithm, args[i]);
    System.out.println ("filename: " + args[i]);
    System.out.println (digest);
    System.out.println();
    }
    }
    }

    fine code.

    per eseguirlo bisogna fare java MessageDigestEncoder MD5 t.txt oppure inserire java MessageDigestEncoder sha1 t.txt
    vorrei che che utilizzasse di default l'algoritmo md5 e che carichi direttamente il file da firmare in modo da essere lanciato tramite linea di comando cosi: java MessageDigestEncoder

    grazie a tutti.

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Cambia il main in questo modo:

    codice:
    public static void main (String args[]) {
      try {
       MessageDigest algorithm = MessageDigest.getInstance("MD5");
       String filename = "t.txt";
       String digest = computeDigest (algorithm, filename);
       System.out.println ("filename: " + filename);
       System.out.println (digest);
      }
      catch (Exception e) {
        System.err.println (e.toString());
      }
    }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    196

    Funziona

    Funziona,grazie del tuo aiuto ,gentilissimo.

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.