Python 将长度32的UUID 压缩为长度为22的字符串
通用唯一识别码(英语: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的字符串相关推荐
- java将uuid转换成大写,python生成大写32位uuid代码
我就废话不多说了,还是直接看代码吧,希望对你有帮助! import uuid def getUUID(): return "".join(str(uuid.uuid4()).spl ...
- python:lzma --- 用 LZMA 算法压缩
python:lzma --- 用 LZMA 算法压缩 读写压缩文件 在内存中压缩和解压缩数据 杂项 指定自定义的过滤器链 例子 此模块提供了可以压缩和解压缩使用 LZMA 压缩算法的数据的类和便携函 ...
- Python实现照片、视频一键压缩及备份源代码
代码 完整代码下载地址:Python实现照片.视频一键压缩及备份源代码 第一次运行前先编辑脚本,修改其中的主库位置.随库位置,保存. 此后要更新随库时,只要双击运行脚本即可. 运行结果示例: 主库位置 ...
- python如何开发解压及压缩软件工具
Python中有很多第三方库可以用来进行文件压缩和解压,下面介绍其中比较常用的几个库和相应的使用方法. zipfile zipfile是Python内置的文件压缩和解压缩库.使用该库可以方便地对zip ...
- python 中遍历表时候,当指定的表的长度超过实际长度时候,实际遍历的长度以表实际长度为准,不会发生越界,如下
python 中遍历表时候,当指定的表的长度超过实际长度时候,实际遍历的长度以表实际长度为准,不会发生越界,如下实际长度为4 但是指定长度为5 sentence= [0,1,2,3] for i i ...
- Python天天美味(32) - python数据结构与算法之堆排序
1. 选择排序 选择排序原理是先选出最小的数,与第一个数交换,然后从第二个数开始再选择最小的数与第二个数交换,-- def selection_sort(data): for i in ran ...
- Python模块学习 - 用tinify模块压缩和优化图片
Python模块学习 - 用tinify模块压缩和优化图片 tinify模块 功能描述:TinyPNG和TinyJPG网站提供了压缩和优化.png和.jpg格式图片的功能.虽然可以很轻松地使用网页版进 ...
- Python标准库中的uuid
Python标准库中有uuid库,其官网访问地址:https://docs.python.org/3.9/library/uuid.html, import uuiddef demo():str1 = ...
- mysql 中的neq_mysql中neq使用Python的Django框架中的压缩组件Django Compressor_MySQL
为了加快网站的加载速度,我们通常要多js和css进行压缩处理.这些js和css的压缩工作如果都手动处理,费时费力. <mysql中neq使用Python的Django框架中的压缩组件Django ...
最新文章
- Krona绘制物种或功能组成圈图
- 数据中心网络流量精细运维
- 经典面试题:给两个序列如何构造一棵二叉树
- linux pti性能影响,Linux修正内核:Intel打补丁性能狂降、AMD不受影响
- 明天要中秋节了,先来到简单“类”的题目
- unef螺纹_硬料怎么车螺纹?一文了解螺纹的分类及其刀具选择
- linux磁盘划分注意,划分磁盘阵列注意问题
- 排序算法--归并排序
- JFFS2 文件系统及新特性介绍
- 访问iis元数据库失败怎么解决?
- mysql教程datetime_Mysql中的Datetime与Timestamp不同之处
- 斐讯k2路由器v22.4.6.3版本刷breed刷华硕固件方法
- WPF 加载GIF图片
- c语言入门经典的作用,C语言入门经典
- 数仓建模—表设计规范
- BUG一词是如何来的?
- 多校胡策 round5 by:yts1999
- XSS相关:知其所以然—浏览器是如是解码的
- 进 /user/用户名/Library/Application Support/
- [IOS笔记][Bugly]首次使用bugly收集app崩溃信息