Как найти хеш пароля в 37 ГБ меньше чем за миллисекунду
Офлайн-проверка пароля по списку утечек выглядит как обычный поиск, пока Pwned Passwords не распаковывается в текстовый файл на 37 ГБ. Минимальный вариант на Python работает, но оказывается слишком медленным.
Автор профилирует код, пробует пропускать части файла, применяет двоичный поиск, строит отдельный индекс и переводит его в двоичный формат. Вполне по дзену: сначала измерить, потом усложнять. Результат: поиск занимает меньше миллисекунды.
В разборе оптимизации можно проследить, почему первые ускорения не уложились в цель, как генерируется и читается индекс и какие структуры данных автор рассматривает в финале.
Post #14813
7.06K
Forwarded from Zen of Python
death and gravity Has your password been pwned? Or, how I almost failed to search a 37 GB text file in under 1 millisecond (in Python) ... in which we check if your password has been compromised in many inconvenient ways, in a tale of destruction, obsession, and self-discovery.- 👍 10
- ❤ 4
- 👌 3
- 😁 2
- 🎉 2
- 🙏 2
- ⚡ 1
- 🔥 1
- 😴 1
- 👨💻 1
- 💊 1