一、概述:

  • 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)的更多相关文章

  1. 通用唯一识别码UUID

    UUID 概念:UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,目前最广泛应用的UUID,是微软公司的全局唯一标识符(GUID),而其他重要的应用,则 ...

  2. Python生成通用唯一识别码UUID

    from uuid import uuid4 for i in range(100): uid = str(uuid4()) suid = ''.join(uid.split('-')) print( ...

  3. Atitit 深入了解UUID含义是通用唯一识别码 (Universally Unique Identifier),

    Atitit 深入了解UUID含义是通用唯一识别码 (Universally Unique Identifier), UUID1 作用1 组成1 全球唯一标识符(GUID)2 UUID 编辑 UUID ...

  4. java生成UUID通用唯一识别码 (Universally Unique Identifier)

    转自:http://blog.csdn.net/carefree31441/article/details/3998553 UUID含义是通用唯一识别码 (Universally Unique Ide ...

  5. (转)java生成UUID通用唯一识别码 (Universally Unique Identifier)

    (原文链接:http://blog.csdn.net/carefree31441/article/details/3998553)   UUID含义是通用唯一识别码 (Universally Uniq ...

  6. 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 ...

  7. php生成唯一识别码uuid

    /*生成唯一标志*标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxxxx-xxxxxxxxxx(8-4-4-4-12)*/ function uuid() { $chars = md ...

  8. 生成唯一标识符 ,通用唯一标识符 UUID

    import java.util.UUID; /** * UUID生成工具 * */ public final class UuidGenUtils { /** * 生成一个UUID串(32个字符,其 ...

  9. 通用唯一标识码UUID的介绍及使用。

    什么是UUID? UUID全称:Universally Unique Identifier,即通用唯一识别码. UUID是由一组32位数的16进制数字所构成,是故UUID理论上的总数为16^32 = ...

随机推荐

  1. 安全测试之session,cookie

    session session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息.•但程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这 ...

  2. AJAX如何获取从前台传递过来的数据然后在通过servle传递给后台

    1 用 request.getParameter接收值 <% String id1=request.getParameter("id"); out.print(id1); % ...

  3. K12协同开发在做常见问题时候遇到的问题

    一.在做常见问题的时候遇到的问题 在后端处理数据的时候是通过serialize来实现的,从数据库中查出自己想要的数据,直接返回数据. 在前端发送ajax请求获取数据并且在页面上以好看的形式渲染. 1. ...

  4. Protege4.3使用入门(一)

    1.下载 下载地址http://protege.stanford.edu/download/protege/4.3/installanywhere/Web_Installers/,目前版本信息Prot ...

  5. 手把手教你如何优化linux服务器

    关闭不需要的服务.列出需要启动的的服务crond.network.sshd.irqbalance.syslog 启用 irqbalance 服务既可以提升性能,又可以降低能耗. syslog 是 li ...

  6. 后台运行python程序 遇到缓冲区问题

    From: http://www.iteye.com/topic/867446 环境:linux 一段执行时间很长的程序(用python做hive客户端执行mapreduce) 在linux后台执行, ...

  7. Maven 国内源

    maven的仓库好慢的说,还是配置一个国内的源吧.推荐aliyun 在maven/conf/settings.xml 文件里配置mirrors的子节点,添加如下mirror <mirror> ...

  8. python asyncio 异步实现mongodb数据转xls文件

    from pymongo import MongoClient import asyncio import xlwt import json class Mongodb_Transfer_Excel( ...

  9. A Look at the Razor View Engine in ASP.NET MVC

    The biggest architectural difference that exists between ASP.NET MVC and ASP.NET Web Forms is the ne ...

  10. 【总结整理】OpenLayers项目分析,OpenLayers中的图层,GeoServer发布wms服务--实验(转)

    https://blog.csdn.net/u013751758/article/details/44751315 https://blog.csdn.net/u013751758/article/d ...