UUID的定义
UUID(Universally Unique Identifier)是用于标识信息的128位唯一标识符,标准形式为32个十六进制数字,分为5段并以连字符分隔(如123e4567-e89b-12d3-a456-426614174000)。其核心特性是全局唯一性,无需中央注册即可生成。
UUID的组成结构
UUID的128位由以下部分组成:
- 时间戳(60位):包含时间戳和时钟序列,确保基于时间的唯一性。
- 版本号(4位):标识UUID的生成算法(如版本1、4等)。
- 变体号(2位):指定UUID的布局标准(通常为RFC 4122)。
- 节点信息(48位):在版本1中可能包含MAC地址,其他版本为随机或哈希值。
常见版本及生成方式
- 版本1(基于时间):结合MAC地址和时间戳生成。
- 版本4(随机):122位随机数,最常用。Java中通过
UUID.randomUUID()生成。 - 版本3/5(基于命名空间哈希):使用MD5(版本3)或SHA-1(版本5)哈希命名空间和名称生成。
示例代码生成版本4 UUID:
import java.util.UUID; public class Main { public static void main(String[] args) { UUID uuid = UUID.randomUUID(); // 生成版本4 UUID System.out.println(uuid.toString()); } }应用场景
- 分布式系统的唯一标识(如会话ID、数据库主键)。
- 避免冲突的临时文件名或消息队列ID。
- 替代自增ID,增强安全性和隐私性。
UUID的标准化格式和算法确保其在全球范围内的唯一性,适用于需要去中心化标识的场景。