python模块之uuid模块
uuid有什么用?
很多应用场景需要一个id,但是又不要求这个id 有具体的意义,仅仅用来标识一个对象。常见的用处有数据库表的id字段;用户session的key值;前端的各种UI库,因为它们通常需要动态创建各种UI元素,这些元素需要唯一的id, 这时候就需要使用UUID了。例如:一个网站在存储视频、图片等格式的文件时,这些文件的命名方式就可以采用 UUID生成的随机标识符,避免重名的出现
Python中uuid模块
uuid主要有五个算法,也就是五种方法来实现
python的uuid模块提供的UUID类和函数uuid1(),uuid3(),uuid4(),uuid5() 来生成1, 3, 4, 5各个版本的UUID ( 需要注意的是:Python中没有基于 DCE 的,所以uuid2可以忽略,其他语言中是有的。
uuid.uuid1(node clock_seq)
# 基于时间戳
# 使用主机ID, 序列号, 和当前时间来生成UUID, 可保证全球范围的唯一性.
# 但由于使用该方法生成的UUID中包含有主机的网络地址, 因此可能危及隐私.
# 该函数有两个参数, 如果 node 参数未指定, 系统将会自动调用 getnode() 函数来获取主机的硬件(mac)地址.
# 如果 clock_seq 参数未指定系统会使用一个随机产生的14位序列号来代替.
import uuid
print(uuid.uuid1())
uuid.uuid3(namespace, name)
# 通过计算名字和命名空间的MD5散列值得到,保证了同一命名空间中不同名字的唯一性,
# 和不同命名空间的唯一性,***但同一命名空间的同一名字生成相同的uuid****。
print(uuid.uuid3(uuid.NAMESPACE_URL,'python'))
print(uuid.uuid3(uuid.NAMESPACE_URL,'python'))
uuid.uuid4() : 基于随机数
# 通过随机数来生成UUID. 使用的是伪随机数有一定的重复概率.
print(uuid.uuid4())
uuid.uuid5(namespace, name)
# 通过计算命名空间和名字的SHA-1散列值来生成UUID, 算法与 uuid.uuid3() 相同
print(uuid.uuid5(uuid.NAMESPACE_URL,'python'))
总结
1 Python中没有基于 DCE 的,所以uuid2可以忽略
2 uuid4存在概率性重复,由无映射性
3 若在Global的分布式计算环境下,最好用uuid1
4 若有名字的唯一性要求,最好用uuid3或uuid5
python模块之uuid模块的更多相关文章
- Python标准库 -- UUID模块(生成唯一标识)
UUID是什么: UUID: 通用唯一标识符 ( Universally Unique Identifier ),对于所有的UUID它可以保证在空间和时间上的唯一性,也称为GUID,全称为: UUID ...
- VUE - 引入 npm 安装的模块 以及 uuid模块的使用
<template> <div> <form @submit.prevent="addTodo"> <in ...
- python中的 uuid 模块使用示例
此模块提供不可变的 UUID 对象 (类 uuid) 和函数uuid1().uuid3().uuid4().uuid5(), 用于生成在 RFC 4122 中指定版本1.3.4和5UUIDs .如果你 ...
- 每天一个小程序—第0001题(uuid模块)
第 0001 题: 做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? 一开始以为是 ...
- Python内置模块之time、random、hashlib、OS、sys、UUID模块
Python常用模块 1.time模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串: (1)时间戳(timestamp) :通常来说,时间 ...
- Python之uuid模块
UUID是128位的全局唯一标识符,通常由32字节的字符串表示. 它可以保证时间和空间的唯一性,也称为GUID,全称为: UUID —— Universally Unique IDentifier P ...
- [py]Python使用UUID库生成唯一ID(uuid模块)
https://www.cnblogs.com/dkblog/archive/2011/10/10/2205200.html uuid介绍 UUID是128位的全局唯一标识符,通常由32字节的字符串表 ...
- Python 爬虫三 beautifulsoup模块
beautifulsoup模块 BeautifulSoup模块 BeautifulSoup是一个模块,该模块用于接收一个HTML或XML字符串,然后将其进行格式化,之后遍可以使用他提供的方法进行快速查 ...
- python第三方模块之paramiko模块
目录: paramiko模块介绍 paramiko模块安装 paramiko模块使用 一.paramiko模块介绍 paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件 ...
- uuid模块
UUID即通用唯一标识符,对于所有的UUID它可以保证在空间和时间上的唯一性.它是通过MAC地址.时间戳.命名空间.随机数.伪随机数来保证生成ID的唯一性,有着固定的大小(128 bit).它的唯一性 ...
随机推荐
- 如何排查内存飙高-Linux top命令快速入门
Linux系统出现了性能问题,一般我们可以通过 top.iostat.free.vmstat和ifstat等命令来初步定位问题.其中,top命令是Linux下常用的性能分析工具,用于实时监测系统资 ...
- Manacher例题问题汇总
Manacher例题问题汇总 本篇随笔面向个人 本来以为回文串很简单,但是没有做对应的练习前下此定论为时过早. https://www.ybtoj.com.cn/contest/75 模板 虽然例题中 ...
- Spring扩展接口-BeanDefinitionRegistryPostProcessor
.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...
- FFmpeg开发笔记(六十三)FFmpeg使用vvenc把视频转为H.266编码
前面的两篇文章分别介绍了如何在Linux环境和Windows环境给FFmpeg集成H.266的编码器vvenc,接下来利用ffmpeg把视频文件转换为VVC格式,观察新生成的vvc视频能否正常播放. ...
- FastDFS分布式文件服务器搭建以及Golang和Python调用
FastDFS 1.介绍 FastDFS是基于http协议的分布式文件系统,其设计理念是一切从简.主要解决了海量数据存储的问题,特别适合系统中的中小文件的存储和在线服务.中小文件的范围大致为4KB-5 ...
- js加密手机号码中间四位方法
一.实现效果: 二.方法代码封装: 方法一: //encryptPhoneNumber.ts /** * 加密手机号码中间四位 * @param phone 手机号 * @returns { stri ...
- 导航栏激活态下划线效果的CSS实现
一.鼠标移入效果图如下: 二.div结构 <div class="navbar"> <ul> <li>首页</li> </ul ...
- Just:告别 Makefile 的现代命令行任务运行器
本文推荐的一个轻量级命令行工具--Just,它提供了一种简单高效的方式来管理项目任务,类似于传统的 Make 工具,但具有更简洁的语法和更现代化的功能. 我目前在一些小项目中开始使用它来管理一些日常的 ...
- [原创]《C#高级GDI+实战:从零开发一个流程图》第04章:来个圆形,连线它!
一.前言 上一节我们实现了在矩形与矩形之间添加连线,光是矩形太单调了,某些问题也暴露不出来,我们本节就来看一下,如何添加一个圆形,且支持圆形与圆形.圆形与矩形.矩形与矩形间的连线.在这个过程中我们会发 ...
- Spring Cloud微服务架构深度解析
在分布式系统单体应用拆分为多个独立服务,实现了高内聚.低耦合的架构目标.本文从核心组件.服务治理.配置管理及面试高频问题四个维度,结合Spring Cloud生态与工程实践,系统解析微服务架构的实现原 ...