public String md5(String str) throws DetectRightException {
		if (str == null) {
			return "";
		}
		MessageDigest md = md5.get();
		if (md == null) throw new DetectRightException("MD5 digest is null!",null);
		byte[] messageDigest = md.digest(str.getBytes());
		BigInteger n = new BigInteger(1, messageDigest);
		String ht = n.toString(16);
		// Now we need to zero pad it if you actually want the full 32 chars.
		while (ht.length() < 32) {
			ht= "0" + ht;
		}
		return ht;
	}