2009-08-06 21 views

Répondre

2

Raffaele Di Fazio:

vous pouvez utiliser cette fonction pour générer MD5 comme valeur de hachage de la chaîne; par exemple,

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; 
    } 

J'espère que cela aide. S'il vous plaît, laissez-nous savoir si c'est la bonne direction pour cette question.

Tigre.

+0

Merci, c'est ce que je cherchais. Je vais tester cette fonction et essayer de l'adapter à mon code. – Raffo

1

DigestUtils.sha(String) devrait faire le travail pour l'URI ou le HTML de la page Web, bien qu'il soit sur vous pour obtenir le code HTML de la page de son URI si cela fait partie du problème. Si oui, vous voudrez peut-être regarder en utilisant Commons HttpClient to GET la page.

+1

Oui, ce sera le cas, mais ce n'est pas la bibliothèque standard Java. Je ne veux pas utiliser une bibliothèque qui ne soit pas nécessaire. – Raffo

+2

Si c'est une contrainte, ça devrait être dans la question. En outre, définir nécessaire, car réimplémentation quelque chose qui est déjà fourni dans une bibliothèque bien testée semble être la hauteur de l'inutilité. –

+0

Ce n'est pas une contrainte Je peux utiliser des bibliothèques externes, mais je ne suis pas sûr que je ne puisse pas le faire en utilisant la bibliothèque standard et juste un peu de codage. Bien sûr, vous avez raison d'utiliser une bibliothèque bien testée, mais je ne sais pas si l'API Java offre quelque chose de similaire .. – Raffo