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;  
    }  
  • 相关阅读:
    个人最终总结
    电梯调度的改进
    电梯调度程序
    读程序的修改
    对wordcount单词字母部分的修改
    wordcount
    读程序
    单元测试
    Microsoft Visual Studio 2013安装及试用
    附加题(二)——沈航软件工程期末附加作业
  • 原文地址:https://www.cnblogs.com/shihaiming/p/8023628.html
Copyright © 2011-2022 走看看