zoukankan      html  css  js  c++  java
  • Java汉字md5值不一致问题

    原文:http://blog.csdn.net/earthhour/article/details/51188437

    通过main方法测试得到一个加密值,通过servlet request调用得到一个加密值,都是加密相同的汉字,但是结果不同。

    如果是加密英文,则不会有这种问题。

    原因就在于汉字编码,在加密时设置一下编码UTF-8,问题解决。

    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;  
    }  
  • 相关阅读:
    grep: Linux基础命令及用法 -- grep
    [功能集锦] 003
    [功能集锦] 002
    [mysql相关集锦] 001
    [eclipse中使用Git插件] 008
    [eclipse相关] 001
    [代码优化集锦]
    [功能集锦] 001
    [java基础] 002
    [java基础] 001
  • 原文地址:https://www.cnblogs.com/shihaiming/p/8023628.html
Copyright © 2011-2022 走看看