java uuid4和uuid的区别

java uuid4和uuid的区别,第1张

一UDID(Unique Device Identifier)

UDID是Unique Device Identifier的缩写,中文意思是设备唯一标识

在很多需要限制一台设备一个账号的应用中经常会用到,在Symbian时代,我们是使用IMEI作为设备的唯一标识的,可惜的是Apple官方不允许开发者获得设备的IMEI

iOS5 sdk中的获取方法:[UIDevice currentDevice] uniqueIdentifier]

uniqueIdentifier在UIDeviceh中的定义如下:@property(nonatomic,readonly,retain) NSString uniqueIdentifier __OSX_AVAILABLE_BUT_DEPRECATED(__MAC意思是iOS20以上及iOS50以下的系统可用,但不建议使用Apple有可能在iOS50之后删除该函数

iOS6之后 换成 [[UIDevice currentDevice] identifierForVendor];

但是我们需要注意的一点是,对于已越狱了的设备,UDID并不是唯一的使用Cydia插件UDIDFaker,可以为每一个应用分配不同的UDID

所以UDID作为标识唯一设备的用途已经不大了

二UUID(Universally Unique Identifier)

UUID是Universally Unique Identifier的缩写,中文意思是通用唯一识别码

由网上资料显示,UUID是一个软件建构的标准,也是被开源软件基金会(Open Software Foundation,OSF)的组织在分布式计算环境(Distributed Computing Environment,DCE)领域的一部份UUID的目的,是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定

根据以上定义可知,同一设备上的不同应用的UUID是互斥的,即能在改设备上标识应用但是并没有明确指出能标识出装有同一应用的不同设备,但是根据我推测,这个UUID应该是根据设备标识和应用标识生成唯一标识,再经过加密而来的(纯推测)

UUID(Universally UniqueIDentifier)

是基于iOS设备上面某个单个的应用程序,只要用户没有完全删除应用程序,则这个UUID在用户使用该应用程序的时候一直保持不变。如果用户删除了这个应用程序,然后再重新安装,那么这个UUID已经发生了改变。通过调用[[UIDevice currentDevice]identifierForVendor];方法可以获取UUID。UUID不好的地方就是用户删除了你开发的程序以后,基本上你就不可能获取之前的数据了。

UDID(Unique Device

Identifier)是一串由40位16进制数组成的字符串,用以标识唯一的设备,现在想通过代码获取是不可能的了,如果你想看看你设备的UDID,可以通过iTunes来查看。苹果从iOS5开始就移除了通过代码访问UDID的权限,所以码农啊,想知道用户设备的UDID,是不行的喽。

那么有没有另外的办法来获取用户设备的唯一标识符呢?答案是有的,当然这样的标识符不是苹果隐藏的UDID了,使用OpenUDID开源代码,这个代码通过一些特殊的算法,创建了每一个设备的唯一标识符,你可以拿过来用来识别设备了。

关于是否重复,首先要说一下uuid生成的原理

UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的

UUID由以下几部分的组合:

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

(2)时钟序列。

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

通过组成可以看出,首先每台机器的mac地址是不一样的,那么如果出现重复,可能是同一时间下生成的id可能相同,不会存在不同时间内生成重复的数据

至于说同一时间产生重复的数据,就目前来说,是不会的除非极高的高并发(如果发生了,也可以通过原子性 *** 作避免),

所以基本上就认为不会重复好了

  //得到指定数量的UUID,以数组的形式返回

    public static String[] getUUID(int num){

        if( num <= 0)

            return null;

        String[] uuidArr = new String[num];

        for (int i = 0; i < uuidArrlength; i++) {

            uuidArr[i] = getUUID32();

        }

        return uuidArr;

    }

    //得到32位的uuid

        public static String getUUID32(){

            return UUIDrandomUUID()toString()replace("-", "")toLowerCase();

        }

主要是生成的过程中有个循环,这个时间长点

以上就是关于java uuid4和uuid的区别全部的内容,包括:java uuid4和uuid的区别、JAVA JDK提供的一个自动生成主键 UUID.randomUUID()的方法 它永远都不会重复嘛、java一个util类方法,为什么生成的uuid会占用到大部分程序处理时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/10628577.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-10
下一篇2023-05-10

发表评论

登录后才能评论

评论列表(0条)

    保存