Maison  >  Article  >  Java  >  Que faire si Java md5 est incohérent

Que faire si Java md5 est incohérent

藏色散人
藏色散人original
2020-04-07 10:01:084474parcourir

Que faire si Java md5 est incohérent

Que dois-je faire si Java md5 est incohérent ? Solution au problème des valeurs md5 incohérentes des caractères chinois Java

Tutoriel recommandé : "Java learning"

Obtenez une valeur cryptée via le test de la méthode principale , et appelez-le via une requête de servlet. Une valeur chiffrée est obtenue, qui chiffre les mêmes caractères chinois, mais les résultats sont différents.

S'il est crypté en anglais, il n'y aura pas de problème de ce type.

La raison réside dans le codage des caractères chinois. Lors du cryptage, définissez le codage sur UTF-8 et le problème est résolu.

public static String EncoderByMd5(String str) {  
    String result = "";  
    MessageDigest md5 = null;  
    try {  
        md5 = MessageDigest.getInstance("MD5");  
        // 这句是关键  
        md5.update(str.getBytes("UTF-8"));  
    } catch (NoSuchAlgorithmException e) {  
        // TODO Auto-generated catch block  
        e.printStackTrace();  
    } catch (UnsupportedEncodingException e) {  
        // TODO Auto-generated catch block  
        e.printStackTrace();  
    }  
    byte b[] = md5.digest();  
    int i;  
    StringBuffer buf = new StringBuffer("");  
    for (int offset = 0; offset < b.length; offset++) {  
        i = b[offset];  
        if (i < 0)  
            i += 256;  
        if (i < 16)  
            buf.append("0");  
        buf.append(Integer.toHexString(i));  
    }  
    result = buf.toString();  
  
    return result;  
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn