Python Glossary English

Python 3.6+secretsпонятие

secrets

модуль

Криптостойкие случайные числа и токены: пароли, ключи сброса, сессионные идентификаторы.

Синтаксис

import secrets

Всё, что защищает доступ, — токены, временные пароли, ссылки сброса — берут из secrets: он читает системный источник случайности. Модуль random для этого не годится: его генератор предсказуем по выходу и нужен для моделирования и игр. Частая ошибка — сравнивать токены через ==, а не secrets.compare_digest, который не выдаёт совпадение по времени ответа.

Примеры

import secrets
token = secrets.token_hex(16)
print(len(token))  # → 32 — 16 байт дают 32 шестнадцатеричных знака
print(secrets.compare_digest(token, token))  # → True
print(0 <= secrets.randbelow(10) < 10)  # → True

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности