精华内容
下载资源
问答
  • Java中Uuid的实现
    2021-03-11 12:25:43

    Java中Uuid的实现1、一种Native的实现,产生真正的Uuid,好像用的人挺多的。

    开源的,LGPL协议。是采用了Native的方式实现的,不过提供了不同的平台的实现。包括:FreeBSD_x86 Linux_x86 MacOSX_ppc Solaris_sparc Win_x86

    使用方式如下:import org.doomdark.uuid.UUID;import org.doomdark.uuid.UUIDGenerator;

    UUIDGenerator generator = UUIDGenerator.getInstance();UUID uuid = generator.generateRandomBasedUUID();

    2、一个纯Java的实现,如下:http://dev.w3.org/cvsweb/java/classes.EGP/org/w3c/tools/crypt/Md5.java http://dev.w3.org/cvsweb/java/classes.EGP/org/w3c/util/UUID.java

    使用方式如下:System.out.println(new UUID());

    这个产生的可能不是真正的UUID,只不过重复的机会少一些而已。

    3、UUID 2.0 http://freshmeat.net/redir/juuid/50118/url_zip/uuid-2.0.zip(没用过,不知道如何)

    4、JDK 1.5一个令人高兴的消息是,JDK 1.5带了Uuid的实现。java.util.Uuid JDK 1.4以前的版本,不带Uuid的实现,真是麻烦!!无可否认,JDK 1.4的基础类库,有很多地方不如。NET Framework 1.0.不过好在第三方开源的类库多,弥补了其着一个缺点。现在JDK 1.5带了Uuid,彻底解决了这个问题。竞争促进进步,。NET的出现,使得Java发展更快了。

    (责任编辑:单月)

    更多相关内容
  • UUID是由一组32位数的16进制数字所构成,是故UUID理论上的总数为16^32 = 2^128,约等于3.4 x 10^38。也就是说若每纳秒产生1兆个UUID,要花100亿年才会将所有UUID用完。 UUID的标准型式包含32个16进制数字,以连字号...

    一.什么是UUID?

    UUID全称:Universally Unique Identifier,即通用唯一识别码。

    UUID是由一组32位数的16进制数字所构成,是故UUID理论上的总数为16^32 = 2^128,约等于3.4 x 10^38。也就是说若每纳秒产生1兆个UUID,要花100亿年才会将所有UUID用完。

    UUID的标准型式包含32个16进制数字,以连字号分为五段,形式为8-4-4-4-12的32个字符,如:550e8400-e29b-41d4-a716-446655440000。

    二.UUID的组成

    UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成的API。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。

    UUID由以下几部分的组合:
    当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。
    时钟序列。
    全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。
    UUID的唯一缺陷在于生成的结果串会比较长。关于UUID这个标准使用最普遍的是微软的GUID(Globals Unique Identifiers)。

    三.编码规则

    UUID(Universally Unique Identifier)全局唯一标识符,定义为一个字符串主键,采用32位数字组成,编码采用16进制,定义了在时间和空间都完全唯一的系统信息。

    UUID的标准格式:xxxxxxxx-xxxx-Axxx-Bxxx-xxxxxxxxxxxx
    A那个位置,代表版本号,由于UUID的标准实现有5个版本,所以只会是1,2,3,4,5
    B那个位置,只会是8,9,a,b

    UUID在发展过程中,为了适应不同的需要,产生了5个版本:

    (1)uuid1: 基于时间戳、机器MAC地址生成。由于使用MAC地址,可以保证全球范围的唯一性。
    (2)uuid2: 只基于时间戳,不常用。
    (3)uuid3: 基于namespace和一个自定义字符串,不常用。
    (4)uuid4: 只基于随机数,最常用,但不推荐,重复几率不太能让人接受。
    (5)uuid5: 只基于namespace,不常用。

    四.UUID的作用

    UUID的是让分布式系统中的所有元素都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。在这样的情况下,就不需考虑数据库创建时的名称重复问题。目前最广泛应用的UUID,是微软公司的全局唯一标识符(GUID),而其他重要的应用,则有Linux ext2/ext3文件系统、LUKS加密分区、GNOME、KDE、Mac OS X等等。

    五.Java 中 UUID 的生成与使用

    Java中的默认UUID生成是使用版本4的。

    public class GenerateUUID {
    
        public static void main(String[] args) {
            UUID uuid = UUID.randomUUID();
            String str = uuid.toString();
       
            // 去掉“-”
            String s = str.replaceAll("-", "");
            System.out.println(str);
            System.out.println(s);
        }
    }
    
    展开全文
  • Java中UUID的使用

    千次阅读 2020-01-24 18:38:49
    虽然在特定的范围内重复的可能性极小,但并不意味着UUID一定不会重复,重复的概率和避免重复的范围与UUID的类型(使用的算法)有关: 1. UUID Version1: 基于时间的UUID。通过计算当前时间戳、随机...

    一. UUID的概念

              UUID是由机器借助设备的网卡地址、时间戳、命名空间、随机数或伪随机数以及时序,经过一系列算法运算,从而得到的一串字符串。虽然在特定的范围内重复的可能性极小,但并不意味着UUID一定不会重复,重复的概率和避免重复的范围与UUID的类型(使用的算法)有关:

             1. UUID Version1: 基于时间的UUID。通过计算当前时间戳、随机数和机器MAC地址得到。由于在算法中使用了MAC地址,这个版本的UUID可以保证在全球范围的唯一性。但与此同时,使用MAC地址会带来安全性问题,这就是这个版本UUID受到批评的地方。如果应用只是在局域网中使用,也可以使用退化的算法,以IP地址来代替MAC地址--Java的UUID往往是这样实现的(当然也考虑了获取MAC的难度)。

            2.  UUID Version2: DCE安全的UUID。DCE(Distributed Computing Environment)安全的UUID和基于时间的UUID算法相同,但会把时间戳的前4位置换为POSIX的UID或GID。这个版本的UUID在实际中较少用到。

            3. UUID Version3: 基于名字的UUID。 基于名字的UUID通过计算名字和名字空间的MD5散列值得到。这个版本的UUID保证了:相同名字空间中不同名字生成的UUID的唯一性;不同名字空间中的UUID的唯一性;相同名字空间中相同名字的UUID重复生成是相同的。 使用的是MD5算法。

            4. UUID Version4: 随机UUID。根据随机数,或者伪随机数生成UUID。这种UUID产生重复的概率是可以计算出来的。

            5. UUID Version5: 基于名字的UUID。和版本3的UUID算法类似,只是散列值计算使用SHA1(Secure Hash Algorithm 1)算法。

            从UUID的不同版本中可以看出:Version 1/2适合应用于分布式计算环境下,具有高度的唯一性;Version 3/5适合于一定范围内名字唯一,且需要或可能会重复生成UUID的环境下。

    二. UUID的使用

          算法1的使用方式:

            1. 引入外部依赖——java-uuid-generator

    <dependency>
        <groupId>com.fasterxml.uuid</groupId>
        <artifactId>java-uuid-generator</artifactId>
        <version>3.2.0</version>
    </dependency>
    

            2. 使用方式

    // 传入网卡信息,基于时间制作出生成器
    TimeBasedGenerator generator = Generators.timeBasedGenerator(EthernetAddress.fromInterface());
    UUID uuid = generator.generate();
    // 通过计算当前时间戳、随机数和机器MAC地址得到,由于使用了MAC地址,因此这个版本的随机数能够保证全球唯一
    System.out.println(uuid.version()); // 1
    System.out.println(uuid.toString().replaceAll("-", ""));

          算法3的使用方式: 

    // "123"是由自己指定的
    System.out.println(UUID.nameUUIDFromBytes("123".getBytes()).version()); // 3
    System.out.println(UUID.nameUUIDFromBytes("123".getBytes()));

          算法4的使用方式:

    System.out.println(UUID.randomUUID().version()); // 4

     

    展开全文
  • java中UUID类的用法及简介

    千次阅读 2020-06-11 10:44:22
    Java 生成 UUID 阅读目录 1.UUID 简介 2.UUID 组成 3.项目实战 回到顶部 1.UUID 简介 UUID 含义是通用唯一识别码 (Universally Unique Identifier),这是一个软件建构的标准。 也是被开源软件基金会 (Open Software ...

    Java 生成 UUID
    阅读目录

    1.UUID 简介
    2.UUID 组成
    3.项目实战
    回到顶部
    1.UUID 简介
    UUID 含义是通用唯一识别码 (Universally Unique Identifier),这是一个软件建构的标准。

    也是被开源软件基金会 (Open Software Foundation, OSF) 的组织应用在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部分。

    UUID 的目的,是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定。

    如此一来,每个人都可以建立不与其它人冲突的 UUID。在这样的情况下,就不需考虑数据库建立时的名称重复问题。

    回到顶部
    2.UUID 组成
    UUID保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成的API。

    按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。

    UUID由以下几部分的组合:

    (1)当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。

    (2)时钟序列。

    (3)全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。

    UUID的唯一缺陷在于生成的结果串会比较长。关于UUID这个标准使用最普遍的是微软的GUID(Globals Unique Identifiers)。

    标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12)。

    回到顶部
    3.项目实战
    UUID 来作为数据库数据表主键是非常不错的选择,保证每次生成的UUID 是唯一的。
    a.生成 UUID

       public static void main(String[] args) {
            for(int i=0;i<10;i++){
                String uuid = UUID.randomUUID().toString().replaceAll("-", "");
                System.out.println(uuid);
            }
        } 
    
    

    b.生成指定数目的 UUID

     /**
         * 获得指定数目的UUID 
         * @param number int 需要获得的UUID数量 
         * @return String[] UUID数组 
         */
        public static String[] getUUID(int number){
            if(number < 1){
                return null;
            }
            String[] retArray = new String[number];
            for(int i=0;i<number;i++){
                retArray[i] = getUUID();
            }
            return retArray;
        }
    
        /**
         * 获得一个UUID 
         * @return String UUID 
         */
        public static String getUUID(){
            String uuid = UUID.randomUUID().toString();
            //去掉“-”符号 
            return uuid.replaceAll("-", "");
    
    }
    

    作者:Orson
    出处:http://www.cnblogs.com/java-class/

    展开全文
  • Java中UUID版本5使用

    2021-03-04 00:06:00
    问题生成UUID版本5作为唯一ID。某些场景不能依赖数据库来生成唯一ID,就需要使用UUID来生成唯一性ID。解决Javaprivate static final String NAMESPACE_URL = "6ba7b811-9dad-11d1-80b4-00c04fd430c8";/*** Type 5 ...
  • 主要介绍了java获取UUIDUUID的校验,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • UUID是如何保证唯一性的? 为了保证UUID的唯一性,规范定义了包括网卡MAC地址、时间戳、名字空间(Namespace)、随机或伪随机数、时序等元素。当然,你要说UUID是不是绝对的不会出现重复的,这个也不能这样说的(我...
  • JAVA 中UUID 详解

    千次阅读 2018-09-27 14:17:36
    前言: 最近在做加密工作,需要拿到一个随机的32位HASH 值,32*4=128bits。这里碰到了UUID,借此机会总结一下。方便你我他!...其目的,是让分布式系统的所有元素,都能有唯一的辨识信息,而不需...
  • Java Uuid生成器(JUG) JUG是一组用于处理UUIDJava类:使用任何标准方法生成UUID,有效输出,排序等。 它根据生成UUID(有关更多说明,另请参见) JUG由Tatu Saloranta( )最初于2002年编写,并且经过多年的...
  • java中UUID的生成

    2014-07-14 21:09:05
    UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空的所有机器都是唯一的。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID...
  • Java基础——UUID

    千次阅读 2022-02-16 10:14:29
    先来单独说说UUID。 用来生成一串无序唯一的32位长度数据。 涉及到以太网卡地址、纳秒级时间、芯片ID等。 底层是一组32位的十六进制数字,理论上总数为1632 = 2128 ≈ 3.4×10123。 就是说每纳秒都能产生上百万个...
  • UUID简介 UUID(Universally Unique Identifier)英文单词的缩写, ... 当我们在同一时间段生成UUID,我们可以发现两个UUID中,除第一部分不同之外,其他部分都相同 时钟序列 全局唯一的IEEE机器识
  • 主要介绍了浅谈JAVA如何生成UUID唯一标识,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • /** * 生成32位随机数 * */ public class IDUtils { ... return UUID.randomUUID().toString().replace("-", ""); } @Test public void test() { System.out.println(IDUtils.getId()); System.out.println
  • java截取uuid和Token参考

    2018-09-17 16:47:32
    java学者参考,可以截取uuid以及Token
  • Java 缩短UUID为22位

    2021-02-12 18:45:43
    参考思路UUID为128位,取高低64位分别处理,转为64制字符,我没有按照Base64的字符表来,随着自己的性子惯了,也没有3字节转为4字节,参考别人直接64位每低6位转为int对应一个64制字符数组(这样其实最后一组只有4位...
  • Java UUID

    2020-06-08 11:45:39
    介绍: UUID(通用唯一标识符)表示一个128位长的唯一值 。 它也被普遍称为GUID(全球唯一标识符)。 UUID的标准表示形式由十六... Java java.util.UUID类表示一个不变的UUID。 我们可以使用UUID类来生成...
  • JAVA UUID 获取方法

    千次阅读 2022-04-03 17:33:49
    UUID获取以及格式化没有什么描述的直接看代码
  • JAVA中UUID的使用

    千次阅读 2018-10-26 17:38:58
    知乎上一位朋友发表(https://www.zhihu.com/question/34876910#answer-31004674),个人感觉从UUID的概念、特征描述比较透彻。...java使用 String uuid = UUID.randomUUID().toString();  ...
  • java,利用UUID类生成32位随机数,可用作流水号,请求记录编号 package com.javabasic.io; import java.util.UUID; /** * @Description UUID生成32位随机数 * @ClassName NumberUtil * @Author yuhuofei * @...
  • 通常需要 UUID 生成器。 并非所有操作系统平台都包含一个。 这个基于 JAVA 的命令行工具将生成一个 UUID,将其写入终端并将其复制到剪贴板,每次调用它时 - 或双击其 JAR 文件。
  • 什么是UUIDJava中怎么产生UUID

    千次阅读 2021-02-26 10:20:24
    展开全部UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦为开放软件基32313133353236313431303231363533e59b9ee7ad9431333366306432金会组织在分布式计算环境领域的一部分...
  • Java中UUID简单介绍

    千次阅读 2020-07-14 19:19:25
    1、UUID的格式 xxxxxxxx—xxxx—xxxx—xxxx—xxxxxxxxxxxx 8个十六进制数—4个十六进制数—4个十六进制数—4个十六进制数—12个十六进制数 一共是32个十六进制数,128bit。刚好跟IPV6数目相等。 估计我们有生之年是...
  • Java中如何自动生成UUID
  • java中UUID

    2015-10-23 17:11:19
    public class UUIDUtil { public static String generateKey(){ String id = UUID.randomUUID().toString() ; return id.replaceAll("-","") ; } public static String generateUpperKey(){ String id =
  • JAVA代码获取UUID

    2021-02-27 10:40:48
    2.UUID工具类import java.util.UUID;public class UUIDGenerator {public UUIDGenerator() {}public static String getUUID() {return UUID.randomUUID().toString();}/** * 获得一个UUID * * @return String UUID *...
  • JAVA(1.7以上)UUID.randomUUID()函数 uuid到目前为止有5个版本。 uuid1是基于时间的版本 uuid2是跟uuid1差不多只是其中的一些算法转换会有区别 uuid3是基于Md5算法 uuid4是随机uuid uuid5跟3差不多,不过是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 139,352
精华内容 55,740
关键字:

java中uuid

java 订阅