python中的uuid简介

一. 什么是UUID:
  UUID: 通用唯一标识符 ( Universally Unique Identifier ), 对于所有的UUID它可以保证在空间和时间上的唯一性. 它是通过MAC地址, 时间戳, 命名空间, 随机数, 伪随机数来保证生成ID的唯一性, 有着固定的大小( 128 bit ). 它的唯一性和一致性特点使得可以无需注册过程就能够产生一个新的UUID. UUID可以被用作多种用途, 既可以用来短时间内标记一个对象, 也可以可靠的辨别网络中的持久性对象.

为什么要使用UUID?

很多应用场景需要一个id, 但是又不要求这个id 有具体的意义, 仅仅用来标识一个对象. 常见的例子有数据库表的id 字段. 另一个例子是前端的各种UI库, 因为它们通常需要动态创建各种UI元素, 这些元素需要唯一的id , 这时候就需要使用UUID了.

二、Python的uuid模块
python的uuid模块提供UUID类和函数uuid1(), uuid3(), uuid4(), uuid5() 来生成1, 3, 4, 5各个版本的UUID ( 需要注意的是: python中没有uuid2()这个函数). 对uuid模块中最常用的几个函数总结如下:

1. uuid.uuid1([node[, clock_seq]]) : 基于时间戳

使用主机ID, 序列号, 和当前时间来生成UUID, 可保证全球范围的唯一性. 但由于使用该方法生成的UUID中包含有主机的网络地址, 因此可能危及隐私. 该函数有两个参数, 如果 node 参数未指定, 系统将会自动调用 getnode() 函数来获取主机的硬件地址. 如果 clock_seq 参数未指定系统会使用一个随机产生的14位序列号来代替.

2. uuid.uuid3(namespace, name) : 基于名字的MD5散列值

通过计算命名空间和名字的MD5散列值来生成UUID, 可以保证同一命名空间中不同名字的唯一性和不同命名空间的唯一性, 但同一命名空间的同一名字生成的UUID相同.

4. uuid.uuid4() : 基于随机数

通过随机数来生成UUID. 使用的是伪随机数有一定的重复概率.

5. uuid.uuid5(namespace, name) : 基于名字的SHA-1散列值

通过计算命名空间和名字的SHA-1散列值来生成UUID, 算法与 uuid.uuid3() 相同.

原文地址:https://www.cnblogs.com/jubing/p/11215444.html

时间: 2024-10-08 13:01:53

python中的uuid简介的相关文章

Python中的uuid

1. 下载uuid模块 https://pypi.python.org/pypi/uuid/ uuid-1.30.tar.gz 2. 解压uuid模块 tar zxvf uuid-1.3.0.tar.gz -C /usr/src 3. build模块 cd /usr/src/uuid python setup.py build 4. install模块 python setup.py install 函数用法 uuid.uuid1() 1.uuid1()--基于时间戳 由MAC地址.当前时间戳.

零基础学python-7.1 python中的字符串简介与常用函数

在python中,字符串变成了一个强大的处理工具集,他是不可变的,也就是说字符串包含字符与字符的顺序,他不可以原处修改 字符串是我们后面需要学习的稍大一点的对象类别--序列的第一个代表 在字符串章节所说到的关于序列的操作,后面的列表与元组一样适用 字符串常用的一些操作与函数 操作 解释 s='' 空字符串 s="abc'd" 双引号和单引号相同 s='abc\n' 转义序列,使用变量完全显示字符, 只有使用print函数才能够显示转义 s="""aaaaa

列表[‘hello’ , ‘python’ ,’!’ ] 用多种方法拼接,并输出’hello python !’ 以及join()在python中的用法简介

列表['hello' , 'python' ,'!' ] 用多种方法拼接,并输出'hello python !' 使用字符串链接的四种方法都可以创建 字符串拼接一共有四种方法,也可以应用到列表的拼接中 a = ['hello','python','!'] 第一种是用类似字符串相加的方法 #a[0] + ' ' + a[1] + ' ' + a[2] 第二种是用%s 连接起来 #'%s %s %s'%(a[0],a[1],a[2]) 第三种是用 join 连接起来 '''这里先普及join()在p

Python中使用UUID

import uuid ... ... print uuid.uuid1() 生成的方法还有uuid2..n,具体参见官网LINK,包括参数细则

Python 标准库 —— uuid(生成唯一 ID)

1. 基础 UUID 是 128 位的全局唯一标识符,通常由 32 字节的字符串(十六进制)表示. 它可以保证时间和空间的唯一性,也称为GUID,全称为: UUID -- Universally Unique IDentifier Python 中叫 UUID GUID -- Globally Unique IDentifier C# 中叫 GUID 它通过MAC地址.时间戳.命名空间.随机数.伪随机数来保证生成 ID 的唯一性. UUID主要有五个算法,也就是五种方法来实现: 1.uuid1(

python中第三方库redis.py简介

1.几种连接方式介绍 """ Redis简介: 这是一个基于内存的高效的键值型非关系型数据库,存取效率极高,而且支持 多种存储数据结构,使用也比较简单. python中提供连接redis的第三方库redis.py. 在这个库中有两个类Redis和StrictRedis来实现Redis的命令操作. Redis是StrictRedis的子类,主要功能是向后兼容旧版本库里的几个方法. 在这里使用官方推荐的StrictRedis. """ from re

Python学习笔记整理(三)Python中的动态类型简介

Python中只有一个赋值模型 一.缺少类型声明语句的情况 在Python中,类型是在运行过程中自动决定的,而不是通过代码声明.这意味着没有必要事声明变量.只要记住,这个概念实质上对变量,对象和它们之间的关系都适用.那么这个概念也容易理解并掌握. 1.变量,对象和引用 变量创建:一个变量,当代码第一次给它赋值时它就被创建了.之后的赋值将会改变已创建的变量名的值.Python在代码运行之前先检测变量名,可以当成是最初的赋值创建变量. 变量类型:变量永远不会有任何的它关联的类型信息或约束.类型的概念

python中strip,lstrip,rstrip简介

一.起因 今天在做角色控制中,有一个地方用到rstrip,判断用户请求的url是否与数据库对应可用权限中url相符. if request.path == x.url or request.path.rstrip('/') == x.url: #精确匹配,判断request.path是否与permission表中的某一条相符 借此机会总结一下python中strip,lstrip和rstrip. 二.介绍 Python中strip用于去除字符串的首位字符,同理,lstrip用于去除左边的字符,r

python中os.path模块简介

1.python中获取当前工作目录 curDir = os.getcwd() os.getcwd()返回的是执行命令时所在的目录,而不是脚本本身所在的目录 2.os.path os.path.abspath(path)  #返回绝对路径 os.path.split(path)     #将path分割成目录和文件名二元组返回 os.path.dirname(path)  #返回path的目录.其实就是os.path.split(path)的第一个元素 os.path.basename(path)