[py]Python使用UUID库生成唯一ID(uuid模块)
https://www.cnblogs.com/dkblog/archive/2011/10/10/2205200.html
uuid介绍
UUID是128位的全局唯一标识符,通常由32字节的字符串表示。
它可以保证时间和空间的唯一性,也称为GUID,全称为:
UUID —— Universally Unique IDentifier Python 中叫 UUID
GUID —— Globally Unique IDentifier C# 中叫 GUID
它通过MAC地址、时间戳、命名空间、随机数、伪随机数来保证生成ID的唯一性。
UUID主要有五个算法,也就是五种方法来实现:
1、uuid1()——基于时间戳
由MAC地址、当前时间戳、随机数生成。可以保证全球范围内的唯一性,
但MAC的使用同时带来安全性问题,局域网中可以使用IP来代替MAC。
2、uuid2()——基于分布式计算环境DCE(Python中没有这个函数)
算法与uuid1相同,不同的是把时间戳的前4位置换为POSIX的UID。
实际中很少用到该方法。
3、uuid3()——基于名字的MD5散列值
通过计算名字和命名空间的MD5散列值得到,保证了同一命名空间中不同名字的唯一性,
和不同命名空间的唯一性,但同一命名空间的同一名字生成相同的uuid。
4、uuid4()——基于随机数
由伪随机数得到,有一定的重复概率,该概率可以计算出来。
5、uuid5()——基于名字的SHA-1散列值
算法与uuid3相同,不同的是使用 Secure Hash Algorithm 1 算法
uuid使用习惯: uuid1和uuid4常用
首先,Python中没有基于DCE的,所以uuid2可以忽略;
其次,uuid4存在概率性重复,由无映射性,最好不用;
再次,若在Global的分布式计算环境下,最好用uuid1;
最后,若有名字的唯一性要求,最好用uuid3或uuid5。
python中使用uuid
# -*- coding: utf-8 -*-
import uuid
name = "test_name"
namespace = "test_namespace"
print uuid.uuid1() # 带参的方法参见Python Doc
print uuid.uuid3(namespace, name)
print uuid.uuid4()
print uuid.uuid5(namespace, name)
[py]Python使用UUID库生成唯一ID(uuid模块)的更多相关文章
- python 使用UUID库生成唯一ID
首先导包: import uuid uuid1(): # make a UUID based on the host ID and current time # 基于MAC地址,时间 ...
- python使用uuid库生成唯一id
概述: UUID是128位的全局唯一标识符,通常由32字节的字符串表示. 它可以保证时间和空间的唯一性,也称为GUID,全称为: UUID -- Universally Unique IDentifi ...
- Python使用UUID库生成唯一ID(转)
原文:http://www.cnblogs.com/dkblog/archive/2011/10/10/2205200.html 资料: Python官方Doc:<20.15. uuid — U ...
- Python 标准库 —— uuid(生成唯一 ID)
有时我们在百度贴吧,在一个网站,保存网页上的一些图片时,图片名有时会是一串很长的数字和字母组成的,但无一例外,图像之间不会出现重名.这个唯一的 id,一般通过 uuid 的方式获得,uuid 根据的是 ...
- 利用Java.util.UUID来生成唯一ID(用来做数据库主键好用)
UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.按照开放软件基金会(OSF)制定的标准计算, ...
- python 生成唯一字符串UUID与MD5
1 Python使用UUID库生成唯一ID UUID是128位的全局唯一标识符,通常由32字节的字符串表示,保证时间和空间的唯一性 通过MAC地址.时间戳.命名空间.随机数.伪随机数来保证生成ID的唯 ...
- 【Python】 uuid生成唯一ID
uuid uuid是128位的全局唯一标识符(univeral unique identifier),通常用32位的一个字符串的形式来表现.有时也称guid(global unique identif ...
- python学习之-- 生成唯一ID
以下以2种方法生成唯一ID def uuid_method(): """第一种方法""" import uuid return str(uu ...
- php 生成唯一id的几种解决方法
php 生成唯一id的几种解决方法 网上查了下,有很多的方法 1.md5(time() . mt_rand(1,1000000)); 这种方法有一定的概率会出现重复 2.php内置函数uniqid ...
随机推荐
- vmware的centos 6虚拟机如何共享文件夹?
1.点 虚拟机-设置 2. 点击 选项-共享文件夹: 3.点击添加,选择 windows主机的一个文件夹作为 共享文件夹: 5.点击完成-确定以后,重启虚拟机(客户机),在虚拟机中: 点击 compu ...
- day10 多媒体(文字 图片 音频 视频)
1计算机表示图形的几种方式 bmp:以高质量保存 用于计算机 jpg:以良好的质量保存 用于计算机或者网络 png:以高质量保存 图片大小的计算公式:图片 ...
- Book118免费下载文档方法
在book118上下载文件时,对于小文件可以使用冰点文库下载器来下载,而对于大文件,则可以使用下面的方法: 需要用的工具: 1.360浏览器 2.点“全屏预览”,然后把鼠标放在“下载该文档”,右键“审 ...
- easyui datagrid 取消删除的方法
下面为取消方法 ... { field: 'Guid', title: '操作', width: 80, align: 'center', formatter: function (value, ro ...
- [No0000EC]C# 字符串(String)
在 C# 中,可以使用字符数组来表示字符串,但是,更常见的做法是使用 string 关键字来声明一个字符串变量.string 关键字是 System.String 类的别名. 创建 String 对象 ...
- tensorflow的assgin方法
官网API是这么说的 This operation outputs a Tensor that holds the new value of 'ref' after the value has bee ...
- MongoDB win10 安装教程(zip)
1.创建文件夹,如下: D:\Program File\mongodb D:\Program File\mongodb\data D:\Program File\mongodb\data\db D:\ ...
- MySQL复制原理-加强版
mysql从3.23开始提供复制功能,复制指将主库的ddl和dml操作通过binlog文件传送到从库上执行,从而保持主库和从库数据同步.mysql支持一台主库同时向多台从库复制,从库同时也可以作为其他 ...
- [filesystem][archlinux][disk encryption][btrfs] btrfs
fork from here http://www.cnblogs.com/hugetong/p/6914248.html boot分区,MBR加密:https://wiki.archlinux.or ...
- [skill] ctags支持函数声明
一般情况下,使用ctags的时候,默认使用如下命令: ctags -R ./ 但是这种情况下,如果运行在include文件夹下的时候,好多函数是跳转不过去的,因为这种默认情况下,函数声明并不会被索引. ...