通用唯一识别码(英语:Universally Unique Identifier,缩写:UUID)是用于计算机体系中以识别信息的一个128位标识符。UUID按照标准方法生成时,在实际应用中具有唯一性,且不依赖中央机构的注册和分配。UUID重复的概率接近零,可以忽略不计。
因此,所有人都可以自行建立和使用UUID,而且几乎可以确定其不会与既有的标识符重复。也因为如此,在不同地方产生的UUID可以使用于同一个数据库或同一个频道中,而且几乎不可能重复。
UUID的格式是这样的:xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx。 N只能是8,9,a,b其中之一。 M代表版本号,由于UUID的标准实现有5个版本,所以只会是1,2,3,4,5
通过当前时间戳、机器MAC地址生成; 由于在算法中使用了MAC地址,这个版本的UUID可以保证在全球范围的唯一性。 但与此同时,因为它暴露了电脑的MAC地址和生成这个UUID的时间,这就是这个版本UUID被诟病的地方。
DCE安全的UUID和基于时间的UUID算法相同,但会把时间戳的前4位置换为POSIX的UID或GID。 不过,在UUID的规范里面没有明确地指定,所以基本上所有的UUID实现都不会实现这个版本。
由用户指定1个namespace和1个具体的字符串,通过MD5散列,来生成1个UUID。 根据规范描述,这个版本的存在是为了向后兼容,平时也很少用到。
根据随机数,或者伪随机数生成UUID。这个版本是用得最多的版本。
和版本3一样,不过散列函数换成了SHA1。