/ainotebook/socialnet/src/org/bresearch/websec/utils/botlist/BotlistUniqueId.java
http://ainotebook.googlecode.com/ · Java · 103 lines · 39 code · 15 blank · 49 comment · 2 complexity · 18356423ad8996616be4b46e77907c07 MD5 · raw file
- /**
- * 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 //
-
- }