通用唯一识别码——UUID(Python)
一、概述:
- UUID(Universally Unique Identity)的缩写,是一种软件建构的标准,通常由32字节16进制数表示(128位),它可以保证时间和空间的唯一性。目前应用最广泛的UUID事微软的GUIDs。
二、作用:
- UUID让分布式系统所有元素都有唯一的辨识信息,让每个人都可以建立与他人不同的UUID,不需考虑数据库建立时的名称重复问题。随机生成字符串,当成token、用户账号、订单等。
三、原理:
- UUID是指一台机器上生成的数字,他保证同一时空所有机器都是唯一的。
- UUID由以下几部分构成:
- (1)时间戳:根据当前时间或者时钟序列生成字符串
- (2)全剧唯一的机器识别号,根据网卡MAC地址或者IP获取,如果没有网卡则以其他方式获取。
- (3)随机数:机器自动随机一组序列
等等
四、算法
- uuid有5种生成算法,分别是uuid1()、uuid2()、uuid3()、uuid4()、uuid5()。
- 1、uuid1()基于时间戳
- 由MAC地址、当前时间戳、随机数字。保证全球范围内的唯一性。但是由于MAC地址使用会带来安全问题,局域网内使用IP代替MAC
- 2、uuid2() 基于分布式环境DCE
- 算法和uuid1相同,不同的是把时间戳前四位换成POIX的UID,实际很少使用。注意:python中没有这个函数
- 3、uuid3() 基于名字和MD5散列值
- 通过计算名字和命名空间的MD5散列值得到的,保证了同一命名空间中不同名字的唯一性,不同命名空间的唯一性。但是同一命名空间相同名字生成相同的uuid。
- 4、uuid4() 基于随机数
- 由伪随机数得到的,有一定重复概率,这个概率是可以算出来的
- 5、uuid5() 基于名字和SAHI值
- 算法和uuid3相同,不同的是使用SAHI算法
五、使用经验:
- 1、python中没有DCE,所以uuid2可以忽略
- 2、uuid4存在概率重复性,由于无映射性,最好不使用
- 3、如果全局的分布式环境下,最好使用uuid1
- 4、若名字的唯一性要求,最好使用uuid3或者uuid5
六、使用:

通用唯一识别码——UUID(Python)的更多相关文章
- 通用唯一识别码UUID
UUID 概念:UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,目前最广泛应用的UUID,是微软公司的全局唯一标识符(GUID),而其他重要的应用,则 ...
- Python生成通用唯一识别码UUID
from uuid import uuid4 for i in range(100): uid = str(uuid4()) suid = ''.join(uid.split('-')) print( ...
- Atitit 深入了解UUID含义是通用唯一识别码 (Universally Unique Identifier),
Atitit 深入了解UUID含义是通用唯一识别码 (Universally Unique Identifier), UUID1 作用1 组成1 全球唯一标识符(GUID)2 UUID 编辑 UUID ...
- java生成UUID通用唯一识别码 (Universally Unique Identifier)
转自:http://blog.csdn.net/carefree31441/article/details/3998553 UUID含义是通用唯一识别码 (Universally Unique Ide ...
- (转)java生成UUID通用唯一识别码 (Universally Unique Identifier)
(原文链接:http://blog.csdn.net/carefree31441/article/details/3998553) UUID含义是通用唯一识别码 (Universally Uniq ...
- java生成UUID通用唯一识别码 (Universally Unique Identifier) 分类: B1_JAVA 2014-08-22 16:09 331人阅读 评论(0) 收藏
转自:http://blog.csdn.net/carefree31441/article/details/3998553 UUID含义是通用唯一识别码 (Universally Unique Ide ...
- php生成唯一识别码uuid
/*生成唯一标志*标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxxxx-xxxxxxxxxx(8-4-4-4-12)*/ function uuid() { $chars = md ...
- 生成唯一标识符 ,通用唯一标识符 UUID
import java.util.UUID; /** * UUID生成工具 * */ public final class UuidGenUtils { /** * 生成一个UUID串(32个字符,其 ...
- 通用唯一标识码UUID的介绍及使用。
什么是UUID? UUID全称:Universally Unique Identifier,即通用唯一识别码. UUID是由一组32位数的16进制数字所构成,是故UUID理论上的总数为16^32 = ...
随机推荐
- jenkins学习(1)
(1) 按照JAVA, 增加环境变量JAVA_HOME = C:\Program Files\Java\jdk1.8.0_31 增加环境变量CLASS_PATH = ...
- oracle 分析函数加order by的影响
create table test (id number(2), name varchar2(10), salary number(6,2));insert into test values (1,' ...
- 关于 object-c的@protocol的理解
从java角度来理解 @protocol 相当于 java 的接口定义,用法也一样 下面是试验例子 @protocol mytestClass <NSObject> - (void) ca ...
- 用css实现图片在div内的垂直居中
已知一个div内有一个img,两者的高度均不知道,但图片的高度一定小于div的高度 代码如下: .box { /*非IE的主流浏览器识别的垂直居中的方法*/ display: table-cell; ...
- python's eighth day for me
f : 变量,f_obj, file, f_handler,...文件句柄. open : windows 的系统功能. windows 默认编码方式:gbk. Linux 默认编码方式:utf ...
- java成神之——线程操作
线程 Future CountDownLatch Multithreading synchronized Thread Producer-Consumer 获取线程状态 线程池 ThreadLocal ...
- JAVA,模拟HTTP登录(略有修改) ----转载自http://zhoujingxian.iteye.com/blog/439738
/* * 网上的一个模拟登录或者模拟注册程序 * 2013-8-5 */ package Socket_Http; import java.io.BufferedReader; import java ...
- 决策树 ID3 C4.5 CART(未完)
1.决策树 :监督学习 决策树是一种依托决策而建立起来的一种树. 在机器学习中,决策树是一种预测模型,代表的是一种对象属性与对象值之间的一种映射关系,每一个节点代表某个对象,树中的每一个分叉路径代表某 ...
- Oracle使用split和splitstr函数批量分隔字符串
/* * Oracle 创建 split 和 splitstr 函数 */ /* 创建一个表类型 */ ) / /* 创建 split 函数 */ CREATE OR REPLACE FUNCTION ...
- krpano之字幕添加
字幕是指介绍语音的字幕,字幕随着语音的播放而滚动,随语音暂停而暂停.字幕添加的前提是用之前的方法添加过介绍语音. 原理: 字幕层在溢出隐藏的父元素中向右滑动,当点击声音控制按钮时,字幕位置被固定,再次 ...