通用唯一识别码——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 = ...
随机推荐
- 屏蔽sql server 2008的智能提示
1. 去掉这个勾 2. 如果你安装了Sql complete, 接着下面的
- Uboot详细解析2
1.第二阶段的主线函数位于u-boot-2010.06/arch/arm/lib/board.c. 第二阶段的功能: <1> 初始化本阶段要使用到的硬件设备. 设置时钟.初始化串口. bo ...
- 关于js的keyCode
原生js的event对象有三个键盘事件的值: 1) charCode: 被点击键的Unicode值 2) keyCode: 被点击键的ASCII十进制值 3) which: 字母数字键的charCod ...
- Java多线程-新特征-信号量Semaphore
简介信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施, 它负责协调各个线程, 以保证它们能够正确.合理的使用公共资源. 概念Semaphore分为单值和多值两种,前者只能 ...
- Java多线程-线程的同步(同步方法)
线程的同步是保证多线程安全访问竞争资源的一种手段.线程的同步是Java多线程编程的难点,往往开发者搞不清楚什么是竞争资源.什么时候需要考虑同步,怎么同步等等问题,当然,这些问题没有很明确的答案,但有些 ...
- solrCloud选举leader的逻辑分析
First call *setup(ElectionContext) to ensure the election process is in it'd. Next calljoinElecti ...
- 使用laravel实现用户的登陆
首先在 php artisan 里面 make:auth 生产一个门脸类 修改配置文件里面要哪个模型登陆 模型得继承一下才能 先写一下注册 密码必须要使用laravel的加密方法,使用MD5都没用 l ...
- Android and iOS 判断是那个系统访问。
<!-- 如果是安卓就加载. --> <neq name="Think.server.HTTP_USER_AGENT|strstr='Android'" valu ...
- 转-使用wifi调试程序
转自:http://www.cnblogs.com/sunzhenxing19860608/archive/2011/07/14/2106492.html 数据线丢了,不想花钱去买,在网上看了看,an ...
- Docker 学习笔记_安装和使用MongoDB
一.准备 1.宿主机OS:Win10 64 2.虚拟机OS:Ubuntu18.04 3.账号:docker 二.安装 1.搜索MongoDB镜像 ...