Некоторые отличия алгоритма bcrypt от других алгоритмов хэширования в библиотеке Passlib:
Ограниченный набор символов для соли. github.com BCrypt не определяет, как следует вести себя при передаче строки соли за пределами определённого диапазона [./A-Za-z0-9]. github.com Чтобы избежать проблем, PassLib строго ограничивает соль разрешённым набором символов и выбрасывает исключение ValueError, если встречается недопустимый символ соли. github.com
Политика работы с кодировкой Unicode. github.com Базовый алгоритм принимает пароль в виде серии ненулевых байтов и не указывает, какую кодировку следует использовать. github.com Чтобы обеспечить поддержку строк Unicode, PassLib кодирует пароли Unicode с помощью utf-8 перед их обработкой с помощью bcrypt. github.com
Биты заполнения. github.com В кодировке base64 bcrypt последний символ соли кодирует только 2 бита данных, остальные 4 — это биты заполнения. github.com Аналогично, последний символ дайджеста содержит 4 бита данных и 2 бита заполнения. github.com Из-за способа кодирования многие реализации BCrypt отклоняют все пароли, если эти биты заполнения не установлены в 0. github.com
Примеры полезных ответов Поиска с Алисой на вопросы из разных сфер. Вопросы сгенерированы нейросетью YandexGPT для актуальных тем, которые определяются на базе обобщённых запросов к Поиску с Алисой.