Вот несколько идей, которые я получил для электронной почты.Generate_nonce происходит из их кода, но я использую generate_nonce_timestamp, для которого я использовал uuid.Он дает мне случайную буквенно-цифровую строку и метку времени в секундах:
import random
import time
import uuid
def generate_nonce(length=8):
"""Generate pseudo-random number."""
return ''.join([str(random.randint(0, 9)) for i in range(length)])
def generate_timestamp():
"""Get seconds since epoch (UTC)."""
return str(int(time.time()))
def generate_nonce_timestamp():
"""Generate pseudo-random number and seconds since epoch (UTC)."""
nonce = uuid.uuid1()
oauth_timestamp, oauth_nonce = str(nonce.time), nonce.hex
return oauth_nonce, oauth_timestamp
Мне нравится использовать uuid1, так как он генерирует uuid на основе текущего хоста и времени и имеет свойство времени, которое вы можете извлечьесли вам нужно оба.Для электронной почты вам понадобятся как временная метка, так и одноразовый номер.
Вот что вы получите:
>>> generate_nonce_timestamp()
('a89faa84-6c35-11e5-8a36-080027c336f0', '136634341422770820')
Если вы хотите удалить -
, используйте nonce.get_hex()
.
uuid1 - Генерирует UUID из идентификатора хоста, порядкового номера и текущего времени.Подробнее о uuid .