iOS开发 - NSUUID的重复概率问题

文章目录

  • 概述
  • 探索

概述

对于 [[NSUUID UUID] UUIDString] 产生的字符串有可能重复吗?概率是多少?code代码时是否需要考虑?

探索

根据 NSUUID的苹果官方说明 阐述:

UUIDs (Universally Unique Identifiers), 也被称作 GUIDs (Globally Unique Identifiers) 或者 IIDs (Interface Identifiers), 是128位值. NSUUID创建的uuid符合RFC 4122 version 4,使用随机字节创建。

  • RFC 4122 version 4 是什么?
    wiki百科 https://en.wikipedia.org/wiki/Universally_unique_identifier 对其进行了详细说明

可见UUID的分为5个版本,version 1 ,version 2 , version 3-5 ,version 4 ,那么看下NSUUID的version 4的重复概率是多少?

  • version 4 的重复概率

对于version 4, 文章中的 The Random UUID probability of duplicates 计算了这个概率,由于version 4 在总共128位中,2位表示rfc 4122(“leach salz”)uuid,4位表示版本(0100表示“随机生成”),因此随机生成的uuid有122个随机位。

计算概率是0.00000000006(6×10−11),相当在大约100年的时间内每秒生成10亿个uuid之后,创建一个副本的概率才会达到50%

所以重复的概率可以视为 0


参考文章:
1.https://stackoverflow.com/questions/1155008/how-unique-is-uuid/6963990#6963990
2.Random_UUID_probability_of_duplicates
3.https://developer.apple.com/documentation/foundation/nsuuid
4.https://nshipster.com/uuid-udid-unique-identifier/

你可能感兴趣的:(iOS开发,NSUUID)