Android和Java Uuid

edw*_*win 2 java encryption uuid android

我想为我的应用程序生成一个uuid我尝试了很多东西,如wifi mac地址,获取android id,序列号,从设备android.os.Build属性创建伪uuid .

我也知道java本身有Uuid创建者类 java.util.UUID

通过浏览几篇文章和博客,我对此感到困惑.我想知道,如果两个Android设备正在创建uuid使用这个java类(java.util.UUID)将是唯一的还是有任何重复的机会?

此外,在某些设备中,我无法使用找到序列号android.os.Build.SERIAL.是否有获取设备序列号的替代方法

bro*_*ofa 8

假设您正在使用java.util.UUID的randomUUID()函数,那么理论上存在重复的可能性,但它非常遥远.生成的ID是RFC4122版本4 ID,其随机设置为122位.这意味着有5.32 x 10 ^^ 36个可能的值.从某种角度来看,如果你有十亿个设备,每个产生每秒十亿个ID,那么它们需要大约1680亿年才能完成(宇宙年龄的10倍).

所以,是的,重复是可能的,但是(假设Java使用高质量的随机数生成器),它实际发生的几率是如此遥远以至于没有意义.