关闭

UUID生成方法

标签: LINUX分布式计算应用软件架构
91人阅读 评论(0) 收藏 举报
分类:
UUID生成方法有时间、名称、随机数三种策略
基于时间的UUID生成算法(版本1)
确定UTC时间(60位 Time)和时间序列值(14位 ClockSequence);
设置TimeLow(对应Time的31-0位);
设置TimeMid(对应Time的47-32位);
设置VersionAndTimeHigh(4位版本号及Time的59-48位);
设置VariantAndClockSeqHigh(变体位及对应ClockSequence的13-8位);
设置ClockSeqLow(对应ClockSequence的7-0位);
设置Node(对应48位MAC地址)。

 基于名称的UUID生成算法(版本3和版本5)
针对相应的命名空间(如DNS、URL、OID等)分配一个UUID作为所有UUID的命名空间标识;
将名称转换为字节数列;
使用MD5或SHA-1算法对与名称关联的命名空间标识进行计算,产生16字节哈希结果;
设置TimeLow(对应哈希值的3-0字节);
设置TimeMid(对应哈希值的5-4字节);
设置VersionAndTimeHigh(对应哈希值的7-6字节),以相应版本号重写对应位(第9字节的高4位);
设置VariantAndClockSeqHigh(对应哈希值的第8字节),重写变体对应位(第7字节的高2位,本标准对应值为10);
设置ClockSeqLow(对应哈希值的第9字节);
设置Node(对应哈希值的15-10字节)。
由于SHA-1哈希结果为160位(20字节),本算法中,需要将FIPS PUB 180-2中的SHA-1算法的哈希值字节顺序反转(字节内顺序不变),UUID使用其15-0字节,19-16字节被丢弃
 

基于随机数的UUID生成算法(版本4)
设置VariantAndClockSeqHigh的变体位值为10;
设置VersionAndTimeHigh的4位版本号;
设置剩余位为随机值。
本文中讨论的密码学随机数,主要根据系统可以提供的信息(内存、硬盘、句柄、程序运行的线程、进程、句柄、堆栈等),利用SHA-1等哈希算法得到。



0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

JS生成uuid的几种方法

需要注意的是声明的接收变量命名时不能使用"uuid"不然会报错----比如 var uuid = uuid(); 全局唯一标识符(GUID,Globally Unique Ident...
  • w405722907
  • w405722907
  • 2017-07-05 09:49
  • 1354

java生成UUID的方法总结

java生成UUID的方法总结前言:我们开发的时候,数据库表总会有一个主键,以前我们可能会使用自增的数字作为主键。这样做去确实查询的时候比较快,但是在做系统集成或者数据迁移的的时候就麻烦了。这是id就...
  • xinghuo0007
  • xinghuo0007
  • 2017-06-05 16:46
  • 1539

jquery生成UUID的方法

/*! Math.uuid.js (v1.4) http://www.broofa.com mailto:robert@broofa.comCopyright (c) 2010 Robert Kief...
  • cuisongliu
  • cuisongliu
  • 2015-10-20 11:19
  • 5673

Javascript生成UUID 三种方法

  • 2015-07-17 15:23
  • 6KB
  • 下载

JS生成 UUID的四种方法

全局唯一标识符(GUID,Globally Unique Identifier)也称作 UUID(Universally Unique IDentifier) 。GUID是一种由算法生成的二进制长度为...
  • mr_raptor
  • mr_raptor
  • 2016-08-22 21:46
  • 42412

JS生成 UUID的四种方法

全局唯一标识符(GUID,Globally Unique Identifier)也称作 UUID(Universally Unique IDentifier) 。 GUID是一种由算法生成的二进...
  • promise_sun
  • promise_sun
  • 2017-03-21 18:02
  • 185

JS生成 UUID的四种方法

JS生成 UUID的四种方法 2016-08-22 21:46 13697人阅读 评论(0) 收藏 举报 本文章已收录于: 全局唯一标识符(GUID,G...
  • likeuzi
  • likeuzi
  • 2017-04-25 17:00
  • 8576

hibernate 用注解方式生成uuid方法

//配置uuid,本来jpa是不支持uuid的,但借用hibernate的方法可以实现。 @GeneratedValue(generator = "uuid") @GeneratedValue(g...
  • zhangxianya1
  • zhangxianya1
  • 2017-07-18 16:27
  • 205

java uuid生成方法

http://wyl232.iteye.com/blog/344066 UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成...
  • SalmonellaVaccine
  • SalmonellaVaccine
  • 2013-10-17 00:42
  • 624

java生成UUID的方法总结

前言         我们开发的时候,数据库表总会有一个主键,以前我们可能会使用自增的数字作为主键。这样做确实查询的时候比较快, 但是在做系统集成或者数据迁移的的时候就麻烦了。这是id就有可能...
  • weixin_37539378
  • weixin_37539378
  • 2017-12-11 16:07
  • 95
    个人资料
    • 访问:2347次
    • 积分:246
    • 等级:
    • 排名:千里之外
    • 原创:24篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档