shortuuid:短的uuid


 
 

我們以前想生成隨機字符串的時候,會使用 uuid,比如:

import uuid
print(uuid.uuid4())  # 56981b16-0dde-477e-9f07-e46a76d01d2c

但是這個生成的 uuid 太長了,於是便有了 shortuuid。

import shortuuid
print(shortuuid.uuid())  # SkDQBhEjUfygRQgPGTaYch

我們看到此時生成的 uuid 就短很多了,當然我們也可以生成指定長度的 uuid。

import shortuuid

print(shortuuid.ShortUUID().random(5))  # SRD7J
print(shortuuid.ShortUUID().random(6))  # dLhUFf
print(shortuuid.ShortUUID().random(10))  # 4rcCPd6Ubm

生成的uuid所使用的字符是:a-z、A-Z、2-9,我們可以自己指定用於生成 uuid 的字符。

import shortuuid

# 輸出用於生成uuid的字符
print(shortuuid.get_alphabet())  # 23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
# 設置
shortuuid.set_alphabet("abcdefg")
print(shortuuid.uuid())  # dadgfgegadfdcdfbccffgfgfegbgcdgabfebcfdecccgfb
# 我們看到輸出變長了,這是因為用於生成的字符變少了。為了安全,內容就變多了

print(shortuuid.get_alphabet())  # abcdefg


# 但是對於這種方式生成uuid沒有影響
print(shortuuid.ShortUUID().random(5))  # GKmm6
# 當然我們也可以重新指定
print(shortuuid.ShortUUID(alphabet="abcdefg").random(5))  # edddf

另外shortuuid還可以uuid模塊搭配使用。

import shortuuid
import uuid

u = uuid.uuid4()
s = shortuuid.encode(u)
print(u)  # cf502b50-f75d-4f36-94a9-6bd04789ca55
print(s)  # etUe7amvdJvHQY6Emf2TiL
print(shortuuid.decode(s) == u)  # True


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM