[英]Generating UUID for API tokens in Python
我目前正在Python中生成UUID,如下所示:
import uuid
import secrets
uuid.UUID(bytes=secrets.token_bytes(16))
這可以安全地用作API令牌或訪問令牌嗎?
您當前的方法有兩個原因,可以說是一個安全可靠的方法:
secrets
是專門為了生成加密強隨機數而設計的; token_bytes()
實際上只是對os.urandom()
的調用,后者又從特定於操作系統的隨機源返回隨機字節。* 一個建議 - uuid.uui4()
基本上完成同樣的事情,沒有調用中間函數的開銷:
# https://github.com/python/cpython/blob/3.5/Lib/uuid.py
def uuid4():
"""Generate a random UUID."""
return UUID(bytes=os.urandom(16), version=4)
另外一個建議 - 你可以使用.hex
的UUID對象的.hex
來獲得一個很好的非連字符串。
>>> uuid.uuid4().hex
'22c482ef3cd84c26bb49c0287828428f'
*在Unix上,這是/dev/urandom
,它從設備驅動程序等來源收集信息。 即亂碼信息,這是生成機器特有的,但足夠隨機,無法識別主機本身。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.