您的位置:首页 > 编程语言 > Java开发

JAVA中实现MD5的算法

2007-04-24 01:16 477 查看

package com.ctgusec.bean;




import java.security.MessageDigest;






/** *//** */




/** *//**


* @author zhupan


*/




public class MD5 ...{


private String inStr;




private MessageDigest md5;






/** *//** */




/** *//**


* Constructs the MD5 object and sets the string whose MD5 is to be


* computed.


*


* @param inStr


* the String whose MD5 is to be computed


*/




public MD5(String inStr) ...{


this.inStr = inStr;




try ...{


this.md5 = MessageDigest.getInstance(" MD5 ");




} catch (Exception e) ...{


System.out.println(e.toString());


e.printStackTrace();


}


}






/** *//** */




/** *//**


* Computes the MD5 fingerprint of a string.


*


* @return the MD5 digest of the input String


*/




public String compute() ...{


// convert input String to a char[]


// convert that char[] to byte[]


// get the md5 digest as byte[]


// bit-wise AND that byte[] with 0xff


// prepend "0" to the output StringBuffer to make sure that we don't end


// up with


// something like "e21ff" instead of "e201ff"




char[] charArray = this.inStr.toCharArray();




byte[] byteArray = new byte[charArray.length];




for (int i = 0; i < charArray.length; i++)


byteArray[i] = (byte) charArray[i];




byte[] md5Bytes = this.md5.digest(byteArray);




StringBuffer hexValue = new StringBuffer();






for (int i = 0; i < md5Bytes.length; i++) ...{


int val = ((int) md5Bytes[i]) & 0xff;


if (val < 16)


hexValue.append(" 0 ");


hexValue.append(Integer.toHexString(val));


}




return hexValue.toString();


}






public static void main(String[] args) ...{


MD5 md5 = new MD5(" zhupan ");


String postString = md5.compute();


System.out.println(postString);




if (postString.equals(" 11c454577d6f32b0f3b43fdbf83510a2 ")) ...{


System.out.println(" true ");


} else


System.out.println(" false ");


}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: