MD5算法的简单编写

package com.t_09;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class TS {
    public static void main(String[] args) {
        System.out.println(MD5.getMD5Code("0000"));
    }
}
class MD5{
    
    //全局数组
    private final static String[] strDigits={"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};
    
    public MD5(){}
    
    //返回形式为数字跟字符串
    private static String byteToArrayString(byte bByte){
        int iRet=bByte;
        if(iRet<0){
            iRet+=265;
        }
        int iD1=iRet/16;
        int iD2=iRet%16;
        return strDigits[iD1]+strDigits[iD2];
    }
    
    //转换字节数组为16进制字符串
    private static String byteToString(byte[] bByte){
        StringBuffer sBuffer=new StringBuffer();
        for(int i=0;i<bByte.length;i++){
            sBuffer.append(byteToArrayString(bByte[i]));
        }
        return sBuffer.toString();
    }
    
    public static String getMD5Code(String strObj){
        String resultString=null;
        try{
            resultString=new String(strObj);
            MessageDigest md=MessageDigest.getInstance("MD5");
            //md.digest()函数返回值为存放哈希值结果的byte数组
            resultString=byteToString(md.digest(strObj.getBytes()));
        }catch(NoSuchAlgorithmException ex){
            ex.printStackTrace();
        }
        return resultString;
    }
}

照着别人的敲了一次。好像就是将字符串的哈希值构成的byte数组中的每一个byte都进行加密,然后生成码。

 

相关其他文章:

http://www.cnblogs.com/luminji/archive/2011/05/24/2055021.html

 

posted @ 2016-11-01 18:47  guodaxia  阅读(224)  评论(0编辑  收藏  举报