🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ## 概述 UUID的格式 ``` XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX ``` 标准的UUID有5个部分组成:8-4-4-4-12,一共32个十六进制字符。因此,一共是128位。 - 当把UUID作为数据库的索引时,会因为它没有顺序性造成索引的随机分布和;因为数据量巨大造成查询性能降低。 - 同时,UUID也是不可读的。如果你把它打印在纸质的订单上,并不是一个好的主意。 UUID同时还有信息安全的隐患,它的数据计算里有MAC地址的参与,比较知名的是,曾被用于寻找梅丽莎病毒的制作者位置 ## UUID 的版本 * **UUID Version 1 (基于时间和节点)** * 基于时间戳和节点的硬件地址(通常是MAC地址)生成。包含一个时间戳、时钟序列和节点地址。通常用于需要时间排序的场景。 * **UUID Version 2 (DCE Security)** * 类似于版本1,但包括POSIX UID/GID信息。较少使用,主要用于分布式计算环境(DCE)。 * **UUID Version 3 (基于名字的MD5散列)** * 基于名字(如URL、域名等)和命名空间,通过MD5散列生成。相同名字和命名空间组合将生成相同的UUID,适合需要确定性和一致性的场景。 * **UUID Version 4 (随机生成)** * 随机生成UUID,依赖于伪随机数生成器。由于其随机性,广泛应用于各种需要唯一标识的场景。 * **UUID Version 5 (基于名字的SHA-1散列)** * 类似于版本3,但使用SHA-1散列算法生成。适合需要与版本3类似确定性特征的场景,但提供了不同的散列算法。