数据库自动生成uuid,python uuid生成
UUID生成方法包括时间、名称和随机数。基于时间的UUID生成算法(版本1)确定UTC时间(60位时间)和时序值(14位时钟序列);设置TimeLow(对应31-0位时间);设置TimeMid(对应47-32位时间);设置VersionAndTimeHigh(4位版本号和59-48位时间);设置VariantAndClockSeqHigh(位置变化和相应时钟序列的13-8位);设置ClockSeqLow(对应于ClockSequence的位7-0);设置节点(对应48位MAC地址)。基于名称的UUID生成算法(版本3和版本5)给相应的名称空间分配一个UUID(如DNS、URL、OID等。)作为所有UUIDs的命名空间ID;将名称转换成字节序列;使用MD5或SHA-1算法计算与名称相关联的名称空间标识符,并生成16字节的散列结果;设置TimeLow (3-0字节对应哈希值);设置TimeMid(哈希值对应的5-4字节);设置VersionAndTimeHigh(哈希值对应的7-6个字节),用对应的版本号重写对应的位(第9个字节的高4位);设置VariantAndClockSeqHigh(哈希值对应的第8个字节),重写variant对应的位(第7个字节的高2位,本标准对应的值为10);设置ClockSeqLow(哈希值对应的第9个字节);设置节点(对应15-10字节的哈希值)。由于SHA-1的哈希结果是160位(20字节),在该算法中,FIPS PUB 180-2中SHA-1算法的字节顺序需要颠倒(字节内顺序不变),UUID使用其15-0字节,19-16字节丢弃基于随机数的UUID生成算法(版本4)。设置VersionAndTimeHigh的4位版本号;将其余位设置为随机值。本文讨论的密码随机数主要是根据系统提供的信息(内存、硬盘、句柄、线程、进程、句柄、堆栈等),利用SHA-1等哈希算法得到的。).
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。