`
shiwk
  • 浏览: 27036 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
文章分类
社区版块
存档分类
最新评论

java对uuid的处理

阅读更多

java对uuid的处理
2007-08-15 11:48
uuid和guid都是全球唯一标识符的说法,guid看起来并不是国际标准,所以,uuid实际上是更加通用的说法。uuid和guid都是16个字节(128位的)。故这里只谈论uuid。
首先,建议大家看看:http://www.answers.com/topic/uuid?cat=technology,然后看看:http://www.answers.com/topic/uuid?cat=technology。前者是说uuid的,后者是说guid的。之所以要2个都看是因为uuid里面的说明没有说明完整,而guid里面的说明可以对它进行适当的补充。
总而言之,uuid的形式是:4-2-2-2-6,共4+2+2+2+6=16个字节。比如,550e8400-e29b-41d4-a716-446655440000 。其中,第3部分的第一个字节(即总体上的第7个字节)的高4位用来表示uuid的version类型。version表明了uuid的算法版本,目前有如下几种:
1,version1:version1是第一次提出来的算法,算法使用了唯一硬件地址(比如,网卡啊,cpu编号啊)+精确到100纳秒的时间,还有其他的一些数据来产生结果。可是,它被广泛的抵制了,因为根据uuid可以很容易的查到是那台电脑构建的(因为网卡地址唯一)。传闻说有一次网络攻击行为就是被这种方式给追踪到黑客的。
2,version3:第3版本的算法(很奇怪的是居然没有第2版本的算法),这个算法十分简单,就是使用md5算法hash一个唯一url地址。保证uuid的唯一需要你自己保证url地址的唯一。
3,version4:第4版本的算法,这个算法也很容易理解,它是直接使用一个随机数来构建uuid。随机数如何构建由自己决定。
4,version5:第5版本的算法,这个算法和第3版本的算法几乎一样,唯一不同的是它使用了sha-1算法代替md5算法来进行hash。

以上就是uuid的标准了。个人认为除了第1个算法以外,其他几个算法都不能够保证唯一性的。

从java5.0开始,sun提供了对uuid的支持(即java.util.Uuid类)。目前UUID类只提供了根据md5和根据随机数来构建uuid的算法(即第3和第4个版本的算法)。这里我比较迷惑不解,因为jdk6.0里面已经提供了一个新的方法java.net.NetWorkInterface.getHardwareAddress(),这个方法就是得到网卡MAC地址的方法,可是为何jdk6.0里面的UUID类还是没有提供基于第一种算法的方法呢?还有就是,第5种算法也是很容易支持的,jdk6.0居然也不支持。

另外,UUID据说还有32位的版本,它的形式为:8-4-4-4-12,有人还提供了从16位转移到32位的方法。对此暂时没有看到标准的说明。

分享到:
评论
1 楼 lanyan 2011-01-19  
不知道这位兄弟查询过数据库中的guid类型没有?java里面怎么得到数据库中的guid类型啊?

相关推荐

    java学习UUID的放弃,切换到ULID

    日常开发中我们会遇到使用字符串ID,最先行到的就是UUID生成我们的随机字符串,但是UUID...单调排序顺序(正确检测并处理相同的毫秒) 时间戳 UNIX时间(以毫秒为单位) 直到公元10889年,他的空间都不会用完 48位整数

    java-uuid-generator:Java Uuid Generator(JUG)是一个用于在Java上生成所有(3)类型的UUID的库。 请参阅(http

    JUG是一组用于处理UUID的Java类:使用任何标准方法生成UUID,有效输出,排序等。 它根据生成UUID(有关更多说明,另请参见) JUG由Tatu Saloranta( )最初于2002年编写,并且经过多年的更新。 此外,其他许多人也...

    邮件发送 poi 二维码 条形码等java常用的工具类

    delayqueue:java自带延迟对了使用包 DelayMsg:延迟消息实体 DelayMsgHandler:延迟消息处理工具 paramvalid:空参检查包 CommonUtil:空参检查工具类 ParamNotNull:参数注解 RegistParam:参数实体 ...

    Android集成主流优秀第三方组件框架

    字符串操作工具类(ToolString.java),生成UUID、非空非NULL逻辑判断、生成MD5等常用共 通方法 数据操作工具类(ToolData.java),自动递归获取表单数据封装成Map、本地数据分页共通方 法等 图片操作工具类...

    java面试题

    60. JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗? 41 61. MVC的各个部分都有那些技术来实现?如何实现? 42 62. java中实现多态的机制是什么? 42 ...

    javabiginteger源码-bytes-java:Bytes是一个实用程序库,可以轻松地在Java中创建、解析、转换、验证和转换字节数组

    从各种来源的创造:多个阵列,整体的,随机的字符串,文件,UUID,... 具有许多内置转换:append、、、、、、shuffle、reverse、... 能够将多个验证器与逻辑表达式任意组合的验证器 最常见的二进制到文本编码中的...

    ssh2多文件的上传与下载

    2.Struts2进行下载处理,能对上传的所有文件进行下载(多个) 3.文件保存的名称UUID生成,不过显示并下载的名称都是原文件名称(防止在转换过程中出现乱码) 4.文件不建议保存在tomcat服务器下,因为重启服务器...

    Util:Cisasoft Java 工具类

    Cisasoft Java 工具类 ChineseHelper 汉字繁体简体转换 PinyinHelper 读取汉字,解析拼音 EnglishHelper 英文字符串处理 QRCodeHelper 二维码工具 ImageHelper 图片处理工具,图片格式之间相互转换,图片加文字水印...

    struts2实现多文件上传下载

    3.Struts2进行下载处理,能对上传的所有文件进行下载(多个) 4.文件保存的名称UUID生成,不过显示并下载的名称都是原文件名称 (通过UploadFiles处理) 5.对配置文件中的路径可以进行动态读取(不重启服务器) ...

    这不是 TI SensorTag 的官方应用程序_是蓝牙低功耗 (BLE) 使用的示例项目_Java_代码_相关文件_下载

    应用程序中链接了 SensorTag UUID,以从 BLE 设备传感器获取信息。 传感器列表: 红外温度传感器 加速度计 陀螺仪 磁力计 湿度传感器(不适用于带有 FW v1.01 的 SensorTag) 压力传感器 有关 SensorTag 开发的更...

    Java学习笔记-个人整理的

    {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{subsection.1.3.1} {1.4}数据类型}{23}{section.1.4} {...

    upx-core.jar

    架构师写的代码。即插即用。有字符串处理,日期处理,时间处理,压缩处理。uuid获得,excell处理……可以借鉴学习。

    java版商城源码-ucbit-beconavi:基于BLE信标的室内导航应用

    java版商城源码ucbit-beconavi ucBit BLE 信标应用程序再次改进,为未来的城市构建基于物理网络的室内导航系统。 即使在今天使用最精确的 GPS 传感器,在室内导航仍然是一个挑战,尤其是在大型商场、大学校园等。 ...

    基于原生Servlet的电商售卖管理系统

    前台:JSP js+css 后台:JDBC 语言:java 数据源:C3P0+mysql 核心组件:upload图片上传组件,mybean实体类的封装组件,支付组件,UUID订单类组件,MD5对数据进行脱敏处理,Jedis客户端

    tv-subtitle-ocr:使用OCR处理在电视广播中提取字幕

    OCR处理会留下文本结果,需要对文本结果进行后处理以消除杂音和通配符。 当OCR处理结束,读取所有字幕并对文本进行后期处理时,将生成一个SRT文件。 该SRT被发送到DOMS,可以使用或进一步处理。 有关各个模块中工作...

    javaweb项目常用工具包

    Base64工具类-字符编码工具类-数据类型转换-日期工具类-Escape中文...MD5编码工具类- MD5加密 生成32位md5码-数字工具类-随机数工具类-反射工具类-字符串处理工具类-URL工具类-UUID-常用的数据验证工具类-XML工具类-

    最全Hibernate 参考文档

    UUID算法(UUID Algorithm ) 5.1.4.4. 标识字段和序列(Identity columns and Sequences) 5.1.4.5. 程序分配的标识符(Assigned Identifiers) 5.1.4.6. 触发器实现的主键生成器(Primary keys assigned by ...

    从J2SE到J2EE知识点介绍

    6. uuid 217 7. guid 217 8. native 217 9. assigned 217 10. select 217 11. foreign 218 (八) 复合自然主键实例(源代码hibernate_0500) 218 (九) Hibernate的类型 224 1. Java基本值类型的Hibernate映射 224 2. ...

    Hibernate注释大全收藏

    具体的java.sql.Clob, Character[], char[] 和 java.lang.String 将被持久化为 Clob 类型. java.sql.Blob, Byte[], byte[] 和 serializable type 将被持久化为 Blob 类型。 @Lob public String getFullText() { ...

Global site tag (gtag.js) - Google Analytics