当前位置:  技术问答>java相关

请问如何自编函数生成唯一ID?

    来源: 互联网  发布时间:2015-05-08

    本文导语:  使用数据库自增ID,在多套软件数据合并时会有问题 用数据库自带的唯一ID,和数据库又有关系 所以希望编一个函数用在插入记录时生成唯一的ID。 请用JAVA 实现。 请高手指点。 | GUID,说...

使用数据库自增ID,在多套软件数据合并时会有问题
用数据库自带的唯一ID,和数据库又有关系

所以希望编一个函数用在插入记录时生成唯一的ID。
请用JAVA 实现。

请高手指点。

|
GUID,说太长,分开回复


/*
 * RandomGUID
 * @version 1.2 01/29/02
 * @author Marc A. Mnich
 *
 * From www.JavaExchange.com, Open Software licensing
 *
 * 01/29/02 -- Bug fix: Improper seeding of nonsecure Random object
 *             caused duplicate GUIDs to be produced.  Random object
 *             is now only created once per JVM.
 * 01/19/02 -- Modified random seeding and added new constructor
 *             to allow secure random feature.
 * 01/14/02 -- Added random function seeding with JVM run time
 *
 */
import java.net.*;
import java.util.*;
import java.security.*;


/*
 * In the multitude of java GUID generators, I found none that
 * guaranteed randomness.  GUIDs are guaranteed to be globally unique
 * by using ethernet MACs, IP addresses, time elements, and sequential
 * numbers.  GUIDs are not expected to be random and most often are 
 * easy/possible to guess given a sample from a given generator.  
 * SQL Server, for example generates GUID that are unique but 
 * sequencial within a given instance.
 *
 * GUIDs can be used as security devices to hide things such as 
 * files within a filesystem where listings are unavailable (e.g. files
 * that are served up from a Web server with indexing turned off).
 * This may be desireable in cases where standard authentication is not
 * appropriate. In this scenario, the RandomGUIDs are used as directories.
 * Another example is the use of GUIDs for primary keys in a database
 * where you want to ensure that the keys are secret.  Random GUIDs can
 * then be used in a URL to prevent hackers (or users) from accessing
 * records by guessing or simply by incrementing sequential numbers.
 *
 * There are many other possiblities of using GUIDs in the realm of
 * security and encryption where the element of randomness is important.
 * This class was written for these purposes but can also be used as a
 * general purpose GUID generator as well.
 *
 * RandomGUID generates truly random GUIDs by using the system's 
 * IP address (name/IP), system time in milliseconds (as an integer), 
 * and a very large random number joined together in a single String 
 * that is passed through an MD5 hash.  The IP address and system time 
 * make the MD5 seed globally unique and the random number guarantees 
 * that the generated GUIDs will have no discernable pattern and 
 * cannot be guessed given any number of previously generated GUIDs.  
 * It is generally not possible to access the seed information (IP, time, 
 * random number) from the resulting GUIDs as the MD5 hash algorithm 
 * provides one way encryption.
 *
 * ----> Security of RandomGUID: 

    
 
 

您可能感兴趣的文章:

  • 请问:定义了2个函数,其中第一个函数要访问另外一个函数的变量,怎么处理阿?谢谢
  • 请问如何根据函数指针打印出这个函数的名称?
  • 一个父类的构造函数的参数是(Applet applet),请问它的子类构造函数当中应怎样调用父类构造函数?
  • 请问在REDHAT下使用gcc编译器用的是什么函数库,函数库的资料应该上哪儿找?
  • 请问有JSP的函数大全吗?如session的所有函数。
  • 请问有没头函数<pthread.h>和<signal.h>里的函数的详细功能介绍?和使用方法???
  • 请问在JAVA里将小写字母换为大写字母是用什么函数,大写转成小写又是用哪个函数?
  • 请问如何在一个函数内部定义的一个新类中使用函数里声明的变量
  • 请问在rh7.2下面,semop()函数可以用其他什么函数来代替?
  • 请问ltoa这个函数的源代码文件叫什么名字(*.c)
  • 请问在linux/unix下有没有象GetKeyboardState()一样对键盘状态进行控制的函数?
  • 请问:java 的applet如何调用本地的c函数?
  • 请问哪儿有Motif的函数说明,比如像VC下的MSDN?
  • 请问这样写对吗?int 函数名(),变量;
  • 请问如何查看libX11.so中的函数实现
  • 请问linux下ftell函数的对应64位函数?
  • 请问在linux调试中能否有调用函数的显示时间
  • 请问用什么函数可以把String转换成int
  • 请问linux下有什么函数相当于MFC里的AfxIsValidAddress啊?
  • 请问,在linux下有没有类似messagebox这个函数。
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问我用程序如何编辑Adobe Acrobat 5.0的pdf文件(生成报表)啊?或者如何才能将已生成的execl报表转换成pdf格式?
  • 请问用POI生成Excel文件时,怎么能生成边框线条等?
  • 在JB自己生成的EJB客户端的测试代码中都会自动生成,象String url = "t3://localhost:7001";这样的,请问:
  • 请问,有什么办法可以把html文件生成pdf/excel格式的文件
  • 不知为何?使用aclocal不能生成aclocal.m4文件?请问是什么原因?
  • 请问在C文件中如何引用 C++ 生成库?
  • 请问 Java 里面有生成 Excel 文件的类吗?
  • 请问如何在主窗体生成子窗体后,使主窗体暂时不可用?
  • 请问在java中如何实现类的动态生成?谢谢
  • 请问如何读取用dd命令生成的文件?
  • 请问用GCC 编译,如何生成MAP文件?就是内存的分布映像文件?
  • 请问linux服务端如何生成网页的缩略图?
  • 请问如何写一个shell生成2G的文件?
  • 请问:用gdb进行调试时,core文件是怎么生成的啊?
  • 请问在用automake,autoconf生成工程文件时,"aclocal"命令的作用?
  • 请问怎么实现把生成一个临时无线热点
  • 请问怎么可以让程序出segment fault 的时候自动生成core 文件? 以前习惯调试core ,现在怎么突然没有了?
  • 请问一个用script生成文件名中有自增加编号的问题
  • 请问:能不能动态的运行时生成对象(动态定义对象), 要涉及到哪些技术, 反射,序列化...??
  • 请问怎样用tomcat自动生成mod_jk.conf、workers.property?
  • 请问:我知道路由器的telnet密码,但忘记了enable 密码,请问如何是好?
  • 请问那里有SYBASE的jbdb 2.0下载;jspsmartupload可以直接将文件上传到数据库,请问如何使用
  • 请问最新的reahat9.0是基于什么核心的?2.4?2.6?请问那里能下载?
  • 请问:请问哪里有关于linux基本操作命令讲解的资料下载,最好是幻灯片格式的.
  • 请问,我试图用#admintool&图形工具命令来安装sun workshop5.0,为什么进入的却是用户管理界面?请问具体该如何在solaris下安装应用软件
  • 请问在Redhat 9里,我从登录就是图形介面,请问如何在图形介面内进入命令行方式呢,谢谢
  • 请问玩过SOLARIS的高手门,在不正常关机后,就不能启动到windows公用桌面了,只能在命令提示模式下了,请问怎么解决这个问题啊?急~!~!
  • 请问:我在redhat下装了bochs-2.2.1-1.rpm,.装了后,想设置一下,但找不到bochsrc.fda.bxrc,请问这个文件在哪个曰录下啊。
  • 请问:在配置Qt时,很多文档都说在.profile,.login里加东西,但是我好像没有发现有这两个文件上,请问这些文件在哪个目录下啊
  • 请问:在GCC里的C程序里的变量的声明是不是只能在前面,而且相同类型的变量的声明只能放在一起?如果不是,请问怎么样可以解决这个问题.
  • 请问各位大虾,小弟今天开始学jsp了,这学期我们有java课,所以已经下载了jdk(好象是1.2),请问我的98环境怎么配置jsp环境呀?我的jdk可以运行.java程序,别的我就不知道了....谢谢!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3