package com.kitty.poclient.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* @ClassName:Md5Util
* @Description:md5加密
* @author Mark
* @date 2012-1-5 上午11:22:05
*/
public class Md5Util {
public static char[] hexChar = { '0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
public static String process(String pSource) {
String lDigest = "None";
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.reset();
md.update(pSource.getBytes());
byte[] byteArray = md.digest();
StringBuffer md5StrBuff = new StringBuffer();
for (int i = 0; i < byteArray.length; i++) {
if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
md5StrBuff.append("0").append(
Integer.toHexString(0xFF & byteArray[i]));
else
md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
}
lDigest = md5StrBuff.toString();
} catch (NoSuchAlgorithmException lEx) {
throw new RuntimeException("Problems calculating MD5", lEx);
}
return lDigest;
}
public static void main(String[] args){
System.out.println(process("68f278bb-b0d6-c554-f386-8b43f0d513b0"));
}
/**
* @Title: process
* @Description: 获得文件的md5校验码
* @param @param file
* @param @return
* @param @throws IOException
* @return String
* @throws
*/
public static String process(File file) throws IOException {
InputStream inputStream = null;
MessageDigest md5 = null;
try {
inputStream = new FileInputStream(file);
byte[] buffer = new byte[512];
md5 = MessageDigest.getInstance("MD5");
int numRead = 0;
while ((numRead = inputStream.read(buffer)) > 0) {
md5.update(buffer, 0, numRead);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
inputStream.close();
}
byte[] b = md5.digest();
StringBuilder sb = new StringBuilder(b.length * 2);
for (int i = 0; i < b.length; i++) {
sb.append(hexChar[(b[i] & 0xf0) >>> 4]);
sb.append(hexChar[b[i] & 0x0f]);
}
return sb.toString();
}
}