001    package com.khubla.pragmatach.framework.crypto;
002    
003    import java.math.BigInteger;
004    import java.security.MessageDigest;
005    
006    import com.khubla.pragmatach.framework.api.PragmatachException;
007    
008    /**
009     * @author tome
010     */
011    public class HashUtil {
012            public static String MD5(String str) throws PragmatachException {
013                    try {
014                            final MessageDigest messageDigest = MessageDigest
015                                            .getInstance("MD5");
016                            messageDigest.reset();
017                            messageDigest.update(str.getBytes("UTF-8"));
018                            final byte[] digest = messageDigest.digest();
019                            final BigInteger bigInt = new BigInteger(1, digest);
020                            String hashtext = bigInt.toString(16);
021                            while (hashtext.length() < 32) {
022                                    hashtext = "0" + hashtext;
023                            }
024                            return hashtext;
025                    } catch (final Exception e) {
026                            throw new PragmatachException("Exception in MD5", e);
027                    }
028            }
029    }