通用唯一识别码(英语:Universally Unique Identifier,缩写:UUID)是用于计算机体系中以识别信息数目的一个128位标识符,还有相关的术语:全局唯一标识符(GUID)。

根据标准方法生成,不依赖中央机构的注册和分配,UUID具有唯一性,这与其他大多数编号方案不同。重复UUID码概率接近零,可以忽略不计。

python 的uuid库经常被用来生成一个随机字符串,在系统中作为唯一id,UUID的标准型式包含32个16进制数字,以连字号分为五段,形式为8-4-4-4-12的36个字符。形式如下:

>>> import uuid
>>> str(uuid.uuid1())
'b92bd938-ecb8-11e9-8327-4c32758a42bd'

但是36位字符串太长了,有什么办法可以将它压缩一下呢?

首先我们会想到,"-" 可以去掉,如下图,生成32位的字符串:

>>> str(uuid.uuid4()).replace('-', '')
'255eab6c057245a7b3afcef8b264c83d'

32位还是太长了,这时可以考虑使用Base64编码,压缩到22位长度:

>>> uuidstring = str(uuid.uuid4()).replace('-', '')
>>> uuid.UUID(uuidstring).bytes.encode('base64').rstrip('=\n')
'5vxL3PwPQOeMhhPv/PERrg'

将其封装为方法后如下:

# 获取压缩成22位的UUID
def compressUuid():uuidstring = str(uuid.uuid4()).replace('-', '')return uuid.UUID(uuidstring).bytes.encode('base64').rstrip('=\n')# 解压缩UUID,获得原始UUID
def decompressUuid(compressedUuid):return str(uuid.UUID(bytes=(compressedUuid + '==').decode('base64')))

Python 将长度32的UUID 压缩为长度为22的字符串相关推荐

  1. java将uuid转换成大写,python生成大写32位uuid代码

    我就废话不多说了,还是直接看代码吧,希望对你有帮助! import uuid def getUUID(): return "".join(str(uuid.uuid4()).spl ...

  2. python:lzma --- 用 LZMA 算法压缩

    python:lzma --- 用 LZMA 算法压缩 读写压缩文件 在内存中压缩和解压缩数据 杂项 指定自定义的过滤器链 例子 此模块提供了可以压缩和解压缩使用 LZMA 压缩算法的数据的类和便携函 ...

  3. Python实现照片、视频一键压缩及备份源代码

    代码 完整代码下载地址:Python实现照片.视频一键压缩及备份源代码 第一次运行前先编辑脚本,修改其中的主库位置.随库位置,保存. 此后要更新随库时,只要双击运行脚本即可. 运行结果示例: 主库位置 ...

  4. python如何开发解压及压缩软件工具

    Python中有很多第三方库可以用来进行文件压缩和解压,下面介绍其中比较常用的几个库和相应的使用方法. zipfile zipfile是Python内置的文件压缩和解压缩库.使用该库可以方便地对zip ...

  5. python 中遍历表时候,当指定的表的长度超过实际长度时候,实际遍历的长度以表实际长度为准,不会发生越界,如下

    python 中遍历表时候,当指定的表的长度超过实际长度时候,实际遍历的长度以表实际长度为准,不会发生越界,如下实际长度为4  但是指定长度为5 sentence= [0,1,2,3] for i i ...

  6. Python天天美味(32) - python数据结构与算法之堆排序

    1. 选择排序 选择排序原理是先选出最小的数,与第一个数交换,然后从第二个数开始再选择最小的数与第二个数交换,-- def selection_sort(data):     for i in ran ...

  7. Python模块学习 - 用tinify模块压缩和优化图片

    Python模块学习 - 用tinify模块压缩和优化图片 tinify模块 功能描述:TinyPNG和TinyJPG网站提供了压缩和优化.png和.jpg格式图片的功能.虽然可以很轻松地使用网页版进 ...

  8. Python标准库中的uuid

    Python标准库中有uuid库,其官网访问地址:https://docs.python.org/3.9/library/uuid.html, import uuiddef demo():str1 = ...

  9. mysql 中的neq_mysql中neq使用Python的Django框架中的压缩组件Django Compressor_MySQL

    为了加快网站的加载速度,我们通常要多js和css进行压缩处理.这些js和css的压缩工作如果都手动处理,费时费力. <mysql中neq使用Python的Django框架中的压缩组件Django ...

最新文章

  1. Krona绘制物种或功能组成圈图
  2. 数据中心网络流量精细运维
  3. 经典面试题:给两个序列如何构造一棵二叉树
  4. linux pti性能影响,Linux修正内核:Intel打补丁性能狂降、AMD不受影响
  5. 明天要中秋节了,先来到简单“类”的题目
  6. unef螺纹_硬料怎么车螺纹?一文了解螺纹的分类及其刀具选择
  7. linux磁盘划分注意,划分磁盘阵列注意问题
  8. 排序算法--归并排序
  9. JFFS2 文件系统及新特性介绍
  10. 访问iis元数据库失败怎么解决?
  11. mysql教程datetime_Mysql中的Datetime与Timestamp不同之处
  12. 斐讯k2路由器v22.4.6.3版本刷breed刷华硕固件方法
  13. WPF 加载GIF图片
  14. c语言入门经典的作用,C语言入门经典
  15. 数仓建模—表设计规范
  16. BUG一词是如何来的?
  17. 多校胡策 round5 by:yts1999
  18. XSS相关:知其所以然—浏览器是如是解码的
  19. 进 /user/用户名/Library/Application Support/
  20. [IOS笔记][Bugly]首次使用bugly收集app崩溃信息

热门文章

  1. 不常见的电脑软件,却很实用你用过几款呢?
  2. MATLAB与STK互联40:仿真案例7—近地圆轨道卫星的抵近操作及相对轨迹显示设置(无互联,手动设置)
  3. 亚马逊调用Report接口全流程
  4. 6月20日云栖精选夜读:阿里怎么发工资?自研薪酬管理系统首次曝光
  5. [附源码]计算机毕业设计勤工俭学管理小程序Springboot程序
  6. 剪切复制文件不见了能恢复吗?
  7. 家族办公室发展新趋势—香港科大商学院通讯
  8. 华硕pro系列笔记本,右击文件出现闪退现象解决办法
  9. 类和对象(个人理解)
  10. [引擎开发] 深入GPU和渲染优化(基础篇)