Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2018, 16:26   #1
Anton_Jag
Пользователь
 
Регистрация: 05.11.2009
Сообщений: 41
По умолчанию подбор строки под хеш md5

Есть строка «Fuck you professor » у нее есть hash сумма. Нужно подобрать такую строку (идентичную по размеру, читаемую) чтобы первые 1, 2 (в идеале 4) символа ее hash суммы совпадали с первыми символами hash суммы референсной строки.
в файле enwords.txt - в каждой строке одно слово
Как перебрать все возможные варианты, чтобы длинна строки была 19(как у заданной)?
Код:

import hashlib

str_md5 = 'Fuck your professor'
str_len = len(str_md5)
res = hashlib.md5(str_md5.encode('utf-8')).hexdigest()
print('hash your string - '+res)
f = open('ENWORDS.txt')
new_str = ''
for firstword in f:
    new_str = firstword.replace('\n','')
    for line in f:
        line = line.replace('\n','')
        if str_len < len(new_str + " " + line):
            #print(len(new_str + " " + line))
            continue
        if len(new_str + ' ' + line) < str_len:
            new_str = new_str + ' ' + line
            continue
        if len(new_str + ' ' + line) == str_len:
            new_res = hashlib.md5((new_str + ' ' + line).encode('utf-8')).hexdigest()
            print((new_str + ' ' + line)+'   --   '+new_res)
Anton_Jag вне форума Ответить с цитированием
Старый 15.11.2018, 08:11   #2
strannik
python developer
Пользователь Подтвердите свой е-майл
 
Аватар для strannik
 
Регистрация: 30.11.2006
Сообщений: 81
По умолчанию

если правильно понял задание

Код:
import hashlib
str = 'Fuck your professor'
str = str.strip()
str_hash = hashlib.md5(str.encode('utf-8')).hexdigest()
print(str_hash)
f = open('ENWORDS.txt')
for line in f:
    line = line.strip()
    line_hash = hashlib.md5(line.encode('utf-8')).hexdigest()
    if (len(str)==len(line)) and (str_hash[:4] == line_hash[:4]):
        print(line)
Границы расширяет тот, кто выходит за них.
strannik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хеш-сумма md5 -Jack- Общие вопросы Delphi 10 04.03.2016 05:41
MD5 хеш Mapho Помощь студентам 5 08.09.2014 15:45
Нужна помощь с MD5 хеш Tactical Общие вопросы C/C++ 3 02.06.2014 17:36
MD5 Хеш файла men232 Visual C++ 1 13.01.2012 19:53
[C#] Вычисление хеш суммы MD5 JonMagon Помощь студентам 2 26.08.2011 10:59