- Регистрация
- 8 Янв 2019
- Сообщения
- 527
- Реакции
- 71
- Баллы
- 118
[SIZE=14pt]Приветствую, хакеры! В этой не большой статье мы напишем инструмент для брута md5 хэшей на python. Надеюсь у вас есть опыт программирования на данном языке. Заранее предупреждаю что здесь не будут рассматриваться темы ООП, многопоточности и других на первый взгляд сложных терминов.
Для начала немного теории:
- Что такое md5 и хэш: md5 это алгоритм хеширования. Под хешированием понимают преобразование входных данных по определенному алгоритму в битовую строку определенной длины. При этом полученный в ходе вычислений результат представлен в шестнадцатеричной системе исчисления. Она называется хешем.
Как будет работать алгоритм:
Мы будем брать одно значения из словаря, преобразовывать его в хэш, сравнивать его с пользовательским вводом, если эти значения совпадают, сигналим пользователю и выходим из программы.
Список нужных нам инструментов:
- интерпретатор python 3.
- текстовый редактор / IDE
- словарь паролей
- модуль hashlib
Сорцы и словарь
Стартуем:
Для начала импортируем нужный нам модуль:[/SIZE]
[SIZE=14pt]import hashlib[/SIZE]
[SIZE=14pt]Затем описываем главную функцию где будет описан полный функционал скрипта:[/SIZE]
[SIZE=14pt] def md5_brut(hash, pwfile):[/SIZE]
[SIZE=14pt] try:[/SIZE]
[SIZE=14pt] descript = open(pwfile, "r", encoding='utf-8', errors='ignore')[/SIZE]
[SIZE=14pt] except:[/SIZE]
[SIZE=14pt] print("Словарь не существует или файл не найден!")[/SIZE]
[SIZE=14pt] exit()[/SIZE]
[SIZE=14pt] for password in descript:[/SIZE]
[SIZE=14pt] fileemd5 = hashlib.md5(password.encode().strip()).hexdigest()[/SIZE]
[SIZE=14pt] if (hash == fileemd5):[/SIZE]
[SIZE=14pt] print("\n [/SIZE][SIZE=14pt]Бинго[/SIZE][SIZE=14pt]. [/SIZE][SIZE=14pt]\n Пароль => %s" % password)[/SIZE]
[SIZE=14pt]break[/SIZE]
[SIZE=14pt]else:[/SIZE]
[SIZE=14pt]pass[/SIZE]
[SIZE=14pt]Главная функция принимает два аргумента, hash (хэш для брута) и pwfile (путь до словаря). Затем с помощью конструкции try-except и переменной descript мы открываем файл только для чтения . В финальной стадии функции мы читаем файл построчно и благодаря функции md5() преобразуем значения из файла в хэш, параллельно сравнивая данные веденные пользователем со зашифрованными значениями из файла. Если if выдает True сигналим и выходим.[/SIZE]
[SIZE=14pt] hash = input("-> Введите хешь: ")[/SIZE]
[SIZE=14pt] pwfile = input("-> Введите путь до словаря: ")[/SIZE]
[SIZE=14pt]md5_brut(hash, pwfile)[/SIZE]
[SIZE=14pt]Вызываем функцию md5_brut с хэшом и местом положением словаря в качестве параметров.[/SIZE]
[SIZE=14pt]Полезные ссылки:
https://docs.python.org/3/library/hashlib.html
https://ru.wikipedia.org/wiki/MD5[/SIZE]
[SIZE=16pt]Вся информация предоставлена лишь для ознакомления и не призывает к действиям. Автор не несет ответственности за использование этой информации.[/SIZE]
Для начала немного теории:
- Что такое md5 и хэш: md5 это алгоритм хеширования. Под хешированием понимают преобразование входных данных по определенному алгоритму в битовую строку определенной длины. При этом полученный в ходе вычислений результат представлен в шестнадцатеричной системе исчисления. Она называется хешем.
Как будет работать алгоритм:
Мы будем брать одно значения из словаря, преобразовывать его в хэш, сравнивать его с пользовательским вводом, если эти значения совпадают, сигналим пользователю и выходим из программы.
Список нужных нам инструментов:
- интерпретатор python 3.
- текстовый редактор / IDE
- словарь паролей
- модуль hashlib
Сорцы и словарь
Стартуем:
Для начала импортируем нужный нам модуль:[/SIZE]
[SIZE=14pt]import hashlib[/SIZE]
[SIZE=14pt]Затем описываем главную функцию где будет описан полный функционал скрипта:[/SIZE]
[SIZE=14pt] def md5_brut(hash, pwfile):[/SIZE]
[SIZE=14pt] try:[/SIZE]
[SIZE=14pt] descript = open(pwfile, "r", encoding='utf-8', errors='ignore')[/SIZE]
[SIZE=14pt] except:[/SIZE]
[SIZE=14pt] print("Словарь не существует или файл не найден!")[/SIZE]
[SIZE=14pt] exit()[/SIZE]
[SIZE=14pt] for password in descript:[/SIZE]
[SIZE=14pt] fileemd5 = hashlib.md5(password.encode().strip()).hexdigest()[/SIZE]
[SIZE=14pt] if (hash == fileemd5):[/SIZE]
[SIZE=14pt] print("\n [/SIZE][SIZE=14pt]Бинго[/SIZE][SIZE=14pt]. [/SIZE][SIZE=14pt]\n Пароль => %s" % password)[/SIZE]
[SIZE=14pt]break[/SIZE]
[SIZE=14pt]else:[/SIZE]
[SIZE=14pt]pass[/SIZE]
[SIZE=14pt]Главная функция принимает два аргумента, hash (хэш для брута) и pwfile (путь до словаря). Затем с помощью конструкции try-except и переменной descript мы открываем файл только для чтения . В финальной стадии функции мы читаем файл построчно и благодаря функции md5() преобразуем значения из файла в хэш, параллельно сравнивая данные веденные пользователем со зашифрованными значениями из файла. Если if выдает True сигналим и выходим.[/SIZE]
[SIZE=14pt] hash = input("-> Введите хешь: ")[/SIZE]
[SIZE=14pt] pwfile = input("-> Введите путь до словаря: ")[/SIZE]
[SIZE=14pt]md5_brut(hash, pwfile)[/SIZE]
[SIZE=14pt]Вызываем функцию md5_brut с хэшом и местом положением словаря в качестве параметров.[/SIZE]
[SIZE=14pt]Полезные ссылки:
https://docs.python.org/3/library/hashlib.html
https://ru.wikipedia.org/wiki/MD5[/SIZE]
[SIZE=16pt]Вся информация предоставлена лишь для ознакомления и не призывает к действиям. Автор не несет ответственности за использование этой информации.[/SIZE]

