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