Светлый фон

import os

import hashlib

def hash_password(password, salt_len=16, iterations=10000, encoding='utf-8'):

····salt = os.urandom(salt_len)

····hashed_password = hashlib.pbkdf2_hmac(

········hash_name='sha256',

········password=bytes(password, encoding),

········salt=salt,

········iterations=iterations

····)

····return salt, iterations, hashed_password

Библиотека secrets (https://docs.python.org/3.6/library/secrets.html) была предложена в PEP 506 (https://www.python.org/dev/peps/pep-0506/), она доступна с версии Python 3.6. Предоставляет функции генерации токенов для безопасности, которые подходят приложениям, а также функции восстановления пароля и создания URL, которые сложно угадать. Ее документация содержит примеры и рекомендации по управлению безопасностью на базовом уровне.

pyOpenSSL

pyOpenSSL

Когда вышла библиотека Cryptography, pyOpenSSL (https://pyopenssl.readthedocs.io/en/stable/) обновила свои привязки так, чтобы использовать основанные на CFFI привязки Cryptography для OpenSSL и попасть под крыло PyCA.

pyOpenSSL намеренно не является частью стандартной библиотеки Python, чтобы можно было выпускать обновления безопасности с желаемой скоростью[109] — ее строят для новых версий OpenSSL, а не для версий OpenSSL, поставляющихся с вашей операционной системой (если только вы не строите ее сами для новой версии). Как правило, если вы строите сервер, то используете pyOpenSSL (обратитесь к документации для SSL от Twisted по адресу http://twistedmatrix.com/documents/12.0.0/core/howto/ssl.html — там вы найдете пример применения pyOpenSSL).

Установите ее с помощью pip:

$ pip install pyOpenSSL

И импортируйте под именем OpenSSL. В этом примере показываются несколько доступных функций:

>>> import OpenSSL