/**
* Generates a MD5 digest for generating unique downloadable filenames.
*/
package qa.qcri.aidr.utils;
import java.security.MessageDigest;
import org.apache.log4j.Logger;
public class MD5HashGenerator {
private static Logger logger = Logger.getLogger(MD5HashGenerator.class);
public MD5HashGenerator() {}
public String getMD5Hash(String data) throws Exception {
if (data != null) {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(data.getBytes());
byte byteData[] = md.digest();
//convert the byte to hex format method 1
StringBuffer sb = new StringBuffer();
for (int i = 0; i < byteData.length; i++) {
sb.append(Integer.toString((byteData[i] & 0xff) + 0x100, 16).substring(1));
}
//System.out.println("Digest(in hex format):: " + sb.toString());
//convert the byte to hex format method 2
StringBuffer hexString = new StringBuffer();
for (int i=0;i<byteData.length;i++) {
String hex=Integer.toHexString(0xff & byteData[i]);
if(hex.length()==1) hexString.append('0');
hexString.append(hex);
}
//System.out.println("Digest(in hex format):: " + hexString.toString());
return hexString.toString();
} else {
logger.warn("MD5Hash won't be generated for null data");
throw new Exception("Data can't be null");
}
}
}