mah, è na pecionata che ho scritto in 2 minuti perchè non volevo perderci tempo, ma non mi pare che rallenti molto:

nella classe che gestisce l'md5 ci metti un array privato del tipo
codice:
this.hexKeys = new String[]{"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};
e poi usi un metodo tipo:
codice:
	private String toStringmd5(byte[] bs){
		String res = "";
		for(byte b : bs){
			int i = b+128;
			res += toHex(i);
		}
		return res;
	}
	
	private String toHex(int i){
		int primo = i/16;
		int secondo = i%16;
		String a = hexKeys[primo];
		String b = hexKeys[secondo];
		return a+b;
	}
ripeto, la soluzione è molto piaciona