return generateUniqueTicket(prefix, -1);
}
public String generateUniqueTicket(String prefix, int len) {
MD5Digest md5 = new MD5Digest();
long time = System.currentTimeMillis();
md5.update( (byte) (time >> 56));
md5.update( (byte) (time >> 48));
md5.update( (byte) (time >> 40));
md5.update( (byte) (time >> 32));
md5.update( (byte) (time >> 24));
md5.update( (byte) (time >> 16));
md5.update( (byte) (time >> 8));
md5.update( (byte) (time >> 0));
byte[] data = new byte[256];
SecureRandom.getInstance().nextBytes(data);
md5.update(data, 0, data.length);
byte[] hash = new byte[md5.getDigestSize()];
md5.doFinal(hash, 0);
String val = prefix + new String(Hex.encode(hash));
if(len > 0 && len < val.length())
val = val.substring(0, len);