Get Unique Id : UUID GUID « Development Class « Java






Get Unique Id

        

/**
 * Berlin Brown
 * Dec 6, 2006
 *
 * -------------------------- COPYRIGHT_AND_LICENSE --
 * Botlist contains an open source suite of software applications for 
 * social bookmarking and collecting online news content for use on the web.  
 * Multiple web front-ends exist for Django, Rails, and J2EE.  
 * Users and remote agents are allowed to submit interesting articles.
 *
 * Copyright (c) 2007, Botnode.com (Berlin Brown)
 * http://www.opensource.org/licenses/bsd-license.php
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification, 
 * are permitted provided that the following conditions are met:
 *
 *      * Redistributions of source code must retain the above copyright notice, 
 *      this list of conditions and the following disclaimer.
 *      * Redistributions in binary form must reproduce the above copyright notice, 
 *      this list of conditions and the following disclaimer in the documentation 
 *      and/or other materials provided with the distribution.
 *      * Neither the name of the Botnode.com (Berlin Brown) nor 
 *      the names of its contributors may be used to endorse or promote 
 *      products derived from this software without specific prior written permission.
 *  
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * -------------------------- END_COPYRIGHT_AND_LICENSE --
 */
//package org.bresearch.websec.utils.botlist;

import java.net.InetAddress;
import java.net.UnknownHostException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Random;

/**
 * This is class is used by botverse.
 * 
 * Usage: BotListUniqueId.getUniqueId())
 * @author Berlin Brown
 *
 */
public class BotlistUniqueId {
      
  private String toHexString(byte[] bytes) {

        char[] ret = new char[bytes.length * 2];
        for (int i = 0, j = 0; i < bytes.length; i++) {         
            int c = (int) bytes[i];
            if (c < 0) {
                c += 0x100;
            }           
            ret[j++] = Character.forDigit(c / 0x10, 0x10);
            ret[j++] = Character.forDigit(c % 0x10, 0x10);

        }

        return new String(ret);
  }
  
  public String getUniqueId() {
    
    String digest = "";
    
    try {
      MessageDigest md = MessageDigest.getInstance("MD5");
      
      String timeVal = "" + (System.currentTimeMillis() + 1);
      String localHost = "";;
      try {
        localHost = InetAddress.getLocalHost().toString();
      } catch (UnknownHostException e) {
        // If an error, we can use other values.        
      }
      
      String randVal = "" + new Random().nextInt();
      String val = timeVal + localHost + randVal;
      md.reset();
      md.update(val.getBytes());

      // Generate the digest.
      digest = toHexString(md.digest());
    } catch(NoSuchAlgorithmException e) {
      
    } // End of the Try - Catch
    
    return digest;
  } // End of the Method //
  
}

   
    
    
    
    
    
    
    
  








Related examples in the same category

1.Random GUID
2.Algorithm for generating Random GUID
3.Get a unique identifier Using java.rmi.dgc.VMID
4.Using java.util.UUID
5.Create your own basic UUID
6.Session ID generator
7.UUID generator from Sun Microsystems
8.UUID generator from http://www1.ics.uci.edu
9.Using java.util.concurrent.AtomicLong: A numerical id, start at zero and increment by one.
10.A 32 byte GUID generator
11.A unique identifier
12.Generate pseudo-GUID sequences
13.Generates a UUID
14.Generates random UUIDs
15.Generator for Globally unique Strings
16.ID generator
17.Simple Id Generator
18.UUID generation
19.UUID generator of 32 bytes long values
20.Simple Long Id Generator
21.Long Sequence Generator
22.UUID generator
23.Thread-safe version of the Axiom UUIDGenerator
24.Convert an array of bytes into a List of Strings using UTF-8.
25.Your own UUID
26.Your own UUID 2
27.Create GUIDs according to the principles at http://www.opengroup.org/dce/info/draft-leach-uuids-guids-01.txt.