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

实现MD5序列的生成[Java]

2007-05-10 21:32 731 查看
/**
* 文件名:GenMD5.java
* 环境: GNU/Linux Ubuntu 7.04 + Eclipse 3.2 + JDK 1.6
* 功能:从String生成MD5序列
* 版本:0.0.1.0
* 作者:88250
* 日期:2007.5.10
* E-mail & MDN: DL88250@gmail.com
* QQ:845765
*/

import java.security.MessageDigest;

public class GenMD5
{
public static void main(String[] args)
{
System.out.println(compute("Test!"));
}

/**
* Computes the MD5 fingerprint of a string.
*
* @return the MD5 digest of the input <code>String</code>
*/
public static String compute(String inStr)
{
// convert input String to a char[]
// convert that char[] to byte[]
// get the md5 digest as byte[]
// bit-wise AND that byte[] with 0xff
// divpend "0" to the output StringBuffer to make sure that we don't end
// up with
// something like "e21ff" instead of "e201ff"
MessageDigest md5 = null;
try
{
md5 = MessageDigest.getInstance("MD5");
}
catch (Exception e)
{
System.out.println(e.toString());
e.printStackTrace();
return "";
}
char[] charArray = inStr.toCharArray();
byte[] byteArray = new byte[charArray.length];

for (int i = 0; i < charArray.length; i++)
{
byteArray[i] = (byte) charArray[i];
}

byte[] md5Bytes = 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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: