Светлый фон

# Дешифрование

decryption_suite = AES.new('This is a key123', AES.MODE_CBC,

'This is an IV456')

plain_text = decryption_suite.decrypt(cipher_text)

bcrypt

bcrypt

Если вы хотите применять алгоритм bcrypt (https://en.wikipedia.org/wiki/Bcrypt) для ваших паролей, задействуйте эту библиотеку. Тем, кто раньше пользовался py-bcrypt, должно быть нетрудно перейти на нее, поскольку библиотеки совместимы. Установите ее с помощью pip:

pip install bcrypt

Она имеет всего две функции: bcrypt.hashpw() и bcrypt.gensalt(). Последняя позволяет выбирать количество итераций — чем больше итераций, тем медленнее работает алгоритм (по умолчанию задается их разумное количество). Рассмотрим пример:

>>> import bcrypt

>>>>

>>> password = bytes('password', 'utf-8')

>>> hashed_pw = bcrypt.hashpw(password, bcrypt.gensalt(14))

>>> hashed_pw

b'$2b$14$qAmVOCfEmHeC8Wd5BoF1W.7ny9M7CSZpOR5WPvdKFXDbkkX8rGJ.e'

Сохраняем хэшированный пароль:

>>> import binascii

>>> hexed_hashed_pw = binascii.hexlify(hashed_pw)

>>> store_password(user_id=42, password=hexed_hashed_pw)

Когда приходит время проверять пароль, используйте хэшированный пароль в качестве второго аргумента функции bcrypt.hashpw() следующим образом: