Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 06.10.2018, 17:26   #1
Anton_Jag
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 30
Репутация: 10
По умолчанию подбор строки под хеш 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, 09:11   #2
strannik
Форумчанин
 
Аватар для strannik
 
Регистрация: 30.11.2006
Адрес: г.Барнаул
Сообщений: 66
Репутация: 64
По умолчанию

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

Код:

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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хеш-сумма md5 -Jack- Общие вопросы Delphi 10 04.03.2016 06: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


17:14.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru