package com.kitty.poclient.util; import java.net.InetAddress; import java.net.UnknownHostException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.util.Random; /** * @ClassName:GUIDGenUtil * @Description:���ʱ������GUID * @author Mark * @date 2012-1-5 ����11:18:02 */ public class GUIDGenUtil { private static SecureRandom _secureRand = new SecureRandom(); private static Random _rand; static { long l = _secureRand.nextLong(); _rand = new Random(l); } public static String generate(boolean flag, boolean sep) throws UnknownHostException { MessageDigest messagedigest; StringBuilder stringbuffer = new StringBuilder(); try { messagedigest = MessageDigest.getInstance("MD5"); } catch (NoSuchAlgorithmException nosuchalgorithmexception) { throw new RuntimeException(nosuchalgorithmexception); } InetAddress inetaddress = InetAddress.getLocalHost(); System.out.println(inetaddress); long l = System.currentTimeMillis(); long l1 = 0L; if (flag) l1 = _secureRand.nextLong(); else l1 = _rand.nextLong(); stringbuffer.append(inetaddress.toString()); stringbuffer.append(":"); stringbuffer.append(Long.toString(l)); stringbuffer.append(":"); stringbuffer.append(Long.toString(l1)); messagedigest.update(stringbuffer.toString().getBytes()); byte[] abyte0 = messagedigest.digest(); StringBuffer stringbuffer1 = new StringBuffer(); for (int i = 0; i < abyte0.length; i++) { int j = abyte0[i] & 0xFF; if (j < 16) stringbuffer1.append('0'); stringbuffer1.append(Integer.toHexString(j)); } String s = stringbuffer1.toString(); StringBuffer stringbuffer2 = new StringBuffer(); if (sep) { stringbuffer2.append(s.substring(0, 8)); stringbuffer2.append("-"); stringbuffer2.append(s.substring(8, 12)); stringbuffer2.append("-"); stringbuffer2.append(s.substring(12, 16)); stringbuffer2.append("-"); stringbuffer2.append(s.substring(16, 20)); stringbuffer2.append("-"); stringbuffer2.append(s.substring(20)); return stringbuffer2.toString(); } return s; } public static void main(String[] args) throws UnknownHostException{ System.out.println(generate(false,true)); } }