强烈推荐使用Python内置库secrets
1. 利用MD5
import time
from hashlib import md5
session = md5(str(time.time()).encode('utf-8'))
session = session.hexdigest()
print(session)
结果:利用时间戳产生的MD5,如0026fcb876ff6bed4b391df819240c6f
耗时:54.6 µs ± 554 ns
缺点:可暴力破解,高并发时重复率高
2. 利用SHA1
import os
from hashlib import sha1
session = sha1(str(time.time()).encode('utf-8'))
session = session.hexdigest()
print(session)
结果:利用时间戳产生的SHA1,如568ecfe658cc7ce16fd91ac2e03e4afe62f6b4f2
耗时:55.6 µs ± 1.33 µs
缺点:可暴力破解,高并发时重复率高
3. 利用UUID
from uuid import uuid4
session = uuid4()
print(session)
结果:利用随机产生的UUID,如6456bffb-f97a-4d8a-b0a6-c611183aff1b
耗时:60.3 µs ± 1.16 µs
缺点:安全性不足
4. 利用内置库secrets
import secrets
session = secrets.token_urlsafe(16)
print(session)
结果:利用内置库secrets产生的安全令牌,如rnH0Q-SvPNrV7hULW-EDmQ
耗时:52.7 µs ± 858 ns
缺点:Python 3.6及以上可用