首页 > 其他分享 >UUID模块生成随机字符串

UUID模块生成随机字符串

时间:2023-06-26 11:01:40浏览次数:32  
标签:uid uuid 生成 print 模块 字符串 UUID

UUID模块生成随机字符串

【一】UUID详解

  • UUID (Universally Unique Identifier)是一种128位的标识符

    • 用于在计算机系统中识别唯一性。
    • 它通常表示为一个32个十六进制数目,用连字符分隔开来的形式,如 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx。
  • Python中的uuid模块可以生成和操作这些UUID。该模块提供了4种生成UUID的方式:

    • uuid1():
      • 基于主机的MAC地址和当前时间戳生成UUID(不保证全局唯一性)。
    • uuid3():
      • 基于名字的MD5散列值生成UUID。
    • uuid4():
      • 随机生成UUID。
    • uuid5():
      • 基于名字的SHA-1散列值生成UUID。
  • 除此之外,该模块还提供了其他一些功能,例如:

    • UUID对象的属性和方法
      • 如hex、int、urn、bytes、time_low、time_mid等。
    • 解析UUID字符串和字节串的函数
      • 如uuid.UUID()和uuid.bytes_from_uuid()。
    • 对UUID进行比较、排序和哈希的函数
      • 如uuid.uuid1_compare()、uuid.uuid1_sorted()和uuid.uuid_hash()。
  • 总的来说,uuid模块提供了一套完整的UUID生成和操作工具,可以方便地在Python程序中使用UUID。

【二】案例

下面是一些uuid模块常用方法的案例详解:

uuid1()

该方法生成一个基于主机的MAC地址和当前时间戳的UUID。下面是一个简单的示例:

import uuid

print(uuid.uuid1())
# 5ad53ebc-4cab-11ea-9e75-806e6f6e6963

uuid4()

该方法生成一个随机UUID。下面是一个简单的示例:

import uuid

print(uuid.uuid4())
# d0d2760c-4955-49a1-b2be-a3d674cb8e10

uuid5()

该方法生成一个基于名字的SHA-1散列值的UUID。下面是一个简单的示例:

import uuid

namespace = uuid.uuid5(uuid.NAMESPACE_DNS, 'example.org')
print(namespace)
# 6fad1fbe-b3d0-5c43-8974-386a129ca7c9

UUID对象的属性和方法

UUID对象有许多构成UUID的属性和方法。下面是一个简单的示例:

import uuid

# 生成一个UUID对象
uid = uuid.uuid4()

# 获取UUID对象中的各组成部分
print(uid.variant)
# 1

print(uid.version)
# 4

print(uid.time_low)
# 148485486948939628159077133227677751797

print(uid.int)
# 178114247243283222879372506454734868661

# 将UUID对象转换为十六进制字符串
print(uid.hex)
# 'c5c51ab3-20d2-43fd-ba8e-e610f0c33f7b'

# 将UUID对象转换为URN格式的字符串
print(uid.urn)
# 'urn:uuid:c5c51ab3-20d2-43fd-ba8e-e610f0c33f7b'

# 将UUID对象转换为字节串
print(uid.bytes)
# b'\xc5\xc5\x1a\xb3 \xd2C\xfd\xba\x8e\xe6\x10\xf0\xc3?{'

以上是一些uuid模块常用方法的案例详解。若有不清楚的地方,可以进一步咨询。

标签:uid,uuid,生成,print,模块,字符串,UUID
From: https://www.cnblogs.com/dream-ze/p/17505081.html

相关文章

  • Redmine 中,如何新增一个字段名,比如"模块名称":
    why:用于编写测试报告时能够直接根据模块名称进行统计,不对excel表格进行自定义拆分-----规范性登录到Redmine平台,并进入你的项目页面。在项目页面上方的导航栏中,点击"设置"或类似的选项。在设置页面中,找到并点击"问题"或"问题跟踪"相关的设置选项。在问题设置页面中......
  • Delphi字符串比较和大小写转换函数
    首部functionSameText(constS1,S2:string):Boolean;$[SysUtils.pas功能返回两个字符串是否相等说明不区分大小写参考<NULL>例子CheckBox1.Checked:=SameText(Edit1.Text,Edit2.Text);━━━━━━━━━━━━━━━━━━━━━......
  • Hibernate持久化时,持久化enum属性,带字符串
    Hibernate持久化时,持久化enum属性,带字符串如果不带字符串,在从数据库到对象的转换中会转换失败,且在数据库存放的内容为其在enum中的下标(0,1,2)首先定义一个enum类,总共有四个状态publicenumStatus{unreviewed("未审核"),reviewed("已审核"),submitted("已提交"),cancelled(......
  • 目标字符串驼峰化处理
    功能函数的设计初衷是将目标字符串驼峰化的api:比如CSS样式特性与JavaScipt样式属性的切换  background-color与style.backgroundColorfont-weight与fontWeightfont-family与fontFamily  ~~~~~~~~~~~~~~  /**toCamelCase--将目标字符串进行驼峰化处理**@func......
  • 浅谈字符串哈希
    哈希HASH哈希是对于字符串的一种操作。在日常的百度搜索什么的都是根据关键字来查找,我们可以利用hash来加速这个过程。哈希的思想哈希其实是所有字符串操作中,最简单的操作了。哈希的过程,其实可以看作对一个串的单向加密过程,并且需要保证所加的密不能高概率重复,通过这种方式......
  • 字符串转hex
    12publicstaticStringtoHex(Stringtext)throwsException{34//将字符串转为GB2312数组5byte[]arr=text.getBytes("GB2312");67//将数组转为16进制字符串8StringhexStr="";9for(int......
  • 工厂工业自动化PLC扩展IO模块模拟量接口
    MxxxT工业远程以太网I/O数据采集模块是一种高性能、高可靠性的工业级设备,其具有多种输入输出接口,可以广泛应用于物联网产业链中的M2M行业以及自动化控制场合。本文将从该模块的特点、应用领域和优势等方面进行详细介绍。一、特点1.工业级电路设计:MxxxT采用工业级电路设计,具......
  • 车规级耐高温BLE5.2协议串口转蓝牙模块E104-BT53C3产品简介
    蓝牙耐高温车规级BLE5.2蓝牙协议串口转蓝牙模块E104-BT53C3新品即将上架:蓝牙模块通信接口:UART串口通信蓝牙模块工作频率:2402~2480MHz车规级蓝牙模块蓝牙协议:BLE 5.2通信距离:170m天线接口:PCB产品尺寸:23*16mm产品简介:E104-BT53C3耐高温车规级蓝牙模块是一款基于蓝牙协议5.2版本的串......
  • 车规级耐高温BLE5.2协议串口转蓝牙模块E104-BT53C3产品简介
    蓝牙耐高温车规级BLE5.2蓝牙协议串口转蓝牙模块E104-BT53C3新品即将上架:蓝牙模块通信接口:UART串口通信蓝牙模块工作频率:2402~2480MHz车规级蓝牙模块蓝牙协议:BLE 5.2通信距离:170m天线接口:PCB产品尺寸:23*16mm产品简介:E104-BT53C3耐高温车规级蓝牙模块是一款基于蓝牙协议5.2......
  • Linux扩展篇-shell编程(八)-shell字符串截取
    shell字符串截取,一般包含从指定位置和从指定字符截取。一、从指定位置截取从字符串左边开始计数格式:${string:start:length}从string字符串的左边第start个字符开始,向右截取length个字符。${string:start}从string字符串的左边第start个字符开始截取,直到最......