2009-08-06 11 views
0

Ich muss den Hash der HTML einer Webseite (von seiner URL) mit SHA1 oder MD5 in Java erstellen, aber ich weiß nicht, wie es geht ... können Sie mir helfen?Wie kann ich den Hash einer Webseite in Java erstellen?

+1

Ein Hash der URL? oder des HTML? – Mez

+0

Es tut mir leid, ich habe es vergessen ... Ich brauche den Hash der HTML. – Raffo

Antwort

2

Raffaele Di Fazio:

Sie diese Funktion nutzen zu können MD5 als HashValue aus dem String zu erzeugen; zum Beispiel

String hashValue = MD5Hash("URL or HTML".getBytes()); 


    /** 
    * MD5 implementation as Hash value 
    * 
    * @param a_sDataBytes - a original data as byte[] from String 
    * @return String as Hex value 
    * @throws NoSuchAlgorithmException 
    */ 

    public static String MD5Hash(byte[] dataBytes) throws NoSuchAlgorithmException { 
     if(dataBytes == null) return ""; 

     MessageDigest md = MessageDigest.getInstance("MD5"); 
     md.update(dataBytes); 
     byte[] digest = md.digest(); 

     // convert it to the hexadecimal 
     BigInteger bi = new BigInteger(digest); 
     String s = bi.toString(16); 
     if(s.length() %2 != 0) 
     { 
      s = "0"+s; 
     } 
     return s; 
    } 

Ich hoffe, es hilft. Bitte lassen Sie uns wissen, ob es für diese Frage richtig ist.

Tiger.

+0

Danke, das ist, was ich gesucht habe. Ich werde diese Funktion testen und versuchen, sie an meinen Code anzupassen. – Raffo

1

DigestUtils.sha(String) sollte den Job für den URI oder den HTML der Webseite tun, obwohl es auf Ihnen ist, den HTML der Seite von seinem URI zu erhalten, wenn das ein Teil des Problems ist. Wenn dies der Fall ist, sollten Sie sich die Seite Commons HttpClient to GET ansehen.

+1

Ja, es wird, aber ist nicht die Java-Standard-Bibliothek. Ich möchte keine Bibliothek verwenden, die nicht notwendig ist. – Raffo

+2

Wenn das eine Einschränkung ist, sollte es in der Frage sein. Definieren Sie auch, dass notwendig ist, weil die Neuimplementierung von etwas, das bereits in einer gut getesteten Bibliothek bereitgestellt wird, wie die Höhe der Unnötigkeit erscheint. –

+0

Es ist keine Einschränkung, ich kann externe Bibliotheken verwenden, aber ich bin mir nicht sicher, ob ich dies nicht mit der Standard-Bibliothek und nur ein bisschen Codierung tun kann. Natürlich hast du Recht, das ist besser, eine gut getestete Bibliothek zu verwenden, aber ich weiß nicht, ob die Java-API etwas ähnliches bietet. – Raffo

Verwandte Themen