码迷,mamicode.com
首页 > 编程语言 > 详细

java系列--MD5加密

时间:2016-01-05 20:38:22      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

方案一:

/**
    * 1.对文本进行32位小写MD5加密
    * @param plainText 要进行加密的文本
    * @return 加密后的内容
    */
    public static String textToMD5L32(String plainText){
        String result = null;
        //首先判断是否为空
        try{
            MessageDigest md = MessageDigest.getInstance("MD5");           //首先进行实例化和初始化
            byte[] btInput = plainText.getBytes();      //得到一个操作系统默认的字节编码格式的字节数组
            md.update(btInput);                //对得到的字节数组进行处理
            byte[] btResult = md.digest();         //进行哈希计算并返回结果
            StringBuffer sb = new StringBuffer();     //进行哈希计算后得到的数据的长度
            for(byte b : btResult){ 
                int bt = b&0xff;
                if(bt<16){
                    sb.append(0);
                }
                sb.append(Integer.toHexString(bt));
            }
            result = sb.toString();
        }catch(NoSuchAlgorithmException e){
            e.printStackTrace();
        }
        return result;
    }

方案二:

    public static String getMD5(String source) { 
        String s = null; 
        char hexChar[] = { ‘0‘, ‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘9‘, 
        ‘A‘, ‘B‘, ‘C‘, ‘D‘, ‘E‘, ‘F‘ }; 
        try { 
            MessageDigest md = MessageDigest.getInstance("MD5"); 
            md.update(source.getBytes());// 使用指定的byte数组更新摘要  
            byte[] hashCalc = md.digest();// 完成哈希计算  
            char result[] = new char[16 * 2];// MD5结果返回的是32位字符串,每位是16进制表示的  
            int k = 0; 
            for (int i = 0; i < 16; i++) {// 循环16次,对每个字节进行操作转换  
                byte everyByte = hashCalc[i]; 
                result[k++] = hexChar[everyByte >>> 4 & 0xf];// 对每个字节的高4位进行处理,逻辑右移,再相与  
                result[k++] = hexChar[everyByte & 0xf];// 低4位转换  
            } 
            s = new String(result); 
        } catch (NoSuchAlgorithmException e) { 
            e.printStackTrace();
        } 
        return s; 
        } 
        public static void main(String[] args) { 
        System.out.println(getMD5("a")); 
    } 

 

java系列--MD5加密

标签:

原文地址:http://www.cnblogs.com/wangwanchao/p/5103480.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!