восстановление строки по хэшу
От: carpenter СССР  
Дата: 05.04.12 12:25
Оценка: -1
задача такая — восстановить строку по хэшу ( собственно сабж )
понятно, что самый простой вариант — это иметь хэши от сочетания знаков в строке ( или перебирать все сочетания знаков ) до совпадения ,
но — нет ли возможности как нибудь хитро составлять хэш или некое подобие, чтобы облегчить восстановление по нему?
С учетом того сто строка — набор 2х байтовых символов (100 — 300 шт) ( не алфавит а уникальные, скажем ИД ) ,
а хэш может быть 2-4 байта .

спасибо.
Re: восстановление строки по хэшу
От: DarkTranquillity  
Дата: 05.04.12 12:30
Оценка:
Здравствуйте, carpenter, Вы писали:


C>задача такая — восстановить строку по хэшу ( собственно сабж )

C>понятно, что самый простой вариант — это иметь хэши от сочетания знаков в строке ( или перебирать все сочетания знаков ) до совпадения ,
C>но — нет ли возможности как нибудь хитро составлять хэш или некое подобие, чтобы облегчить восстановление по нему?
C>С учетом того сто строка — набор 2х байтовых символов (100 — 300 шт) ( не алфавит а уникальные, скажем ИД ) ,
C>а хэш может быть 2-4 байта .

C>спасибо.

КАК?!!
Re[2]: восстановление строки по хэшу
От: carpenter СССР  
Дата: 05.04.12 12:35
Оценка:
Здравствуйте, DarkTranquillity, Вы писали:

DT>КАК?!!


а вдруг
Re: восстановление строки по хэшу
От: watch-maker  
Дата: 05.04.12 12:41
Оценка:
Здравствуйте, carpenter, Вы писали:

C>задача такая — восстановить строку по хэшу ( собственно сабж )

C>понятно, что самый простой вариант — это иметь хэши от сочетания знаков в строке ( или перебирать все сочетания знаков ) до совпадения ,
C>но — нет ли возможности как нибудь хитро составлять хэш или некое подобие, чтобы облегчить восстановление по нему?

Не понятно, что же нужно сделать, по заданной хеш-функции f и хешу h найти строку s такую, что f(s) = h, или подобрать такую хеш-функцию, чтобы первая задача легко решалась?

Классический подход к решению первой задачи — Rainbow table.

Вторая же задача делается совсем просто: выбирается либо тривиальная хеш-функция h(s) → s, которая элементарно инвертируется, либо выбирается вырожденная хеш-функция h(s) → 0, для которой искомая строка так же элементарно получается.
Re[3]: восстановление строки по хэшу
От: Велимир Россия  
Дата: 05.04.12 12:42
Оценка:
Здравствуйте, carpenter, Вы писали:
C>а вдруг

не вариант )
Re[3]: восстановление строки по хэшу
От: DarkTranquillity  
Дата: 05.04.12 12:43
Оценка:
Здравствуйте, carpenter, Вы писали:

C>Здравствуйте, DarkTranquillity, Вы писали:


DT>>КАК?!!


C>а вдруг


Мир тогда накроется медным тазом (вся PKI пойдет лесом, а за ней, соответственно, банки и их пользователи)
Re: восстановление строки по хэшу
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 05.04.12 12:52
Оценка:
Здравствуйте, carpenter, Вы писали:

C>задача такая — восстановить строку по хэшу ( собственно сабж )

...
C>С учетом того сто строка — набор 2х байтовых символов (100 — 300 шт) ( не алфавит а уникальные, скажем ИД ) ,
C>а хэш может быть 2-4 байта .

Так по хэшу максимум что можно найти — это множество строк. Это примерно как с неопределенным интегралом.
Можно хэш-функцию взять по первым 4-ём байтам, и весь набор генерить перебором оставшейся части.
А вообще странное желание
Маньяк Робокряк колесит по городу
Re[2]: восстановление строки по хэшу
От: pugv Россия  
Дата: 05.04.12 13:13
Оценка:
DT>КАК?!!

Ну, например, перебором
Re: восстановление строки по хэшу
От: uzhas Ниоткуда  
Дата: 05.04.12 13:14
Оценка:
Здравствуйте, carpenter, Вы писали:


C>задача такая — восстановить строку по хэшу ( собственно сабж )

нужно понимать, что одному хешу может соответствовать несколько строк
какую именно вы строку хотите получить?
сформулируйте задачу четче
Re: восстановление строки по хэшу
От: MasterZiv СССР  
Дата: 05.04.12 13:26
Оценка: 4 (1)
> задача такая — восстановить строку по хэшу ( собственно сабж )

Это невозможно.
Posted via RSDN NNTP Server 2.1 beta
Re: восстановление строки по хэшу
От: izl3sa Россия  
Дата: 05.04.12 19:13
Оценка:
Здравствуйте, carpenter, Вы писали:


C>задача такая — восстановить строку по хэшу ( собственно сабж )

C>понятно, что самый простой вариант — это иметь хэши от сочетания знаков в строке ( или перебирать все сочетания знаков ) до совпадения ,
C>но — нет ли возможности как нибудь хитро составлять хэш или некое подобие, чтобы облегчить восстановление по нему?
C>С учетом того сто строка — набор 2х байтовых символов (100 — 300 шт) ( не алфавит а уникальные, скажем ИД ) ,
C>а хэш может быть 2-4 байта .

C>спасибо.


Во-первых тк функция хеширования отражает бесконечно большое множество последовательностей символов в ограниченное множество хэшей задача обращения не возможна. Но есть задача поиска коллизий.

http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BB%D0%BB%D0%B8%D0%B7%D0%B8%D1%8F_%D1%85%D0%B5%D1%88-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8

Во вторых вы не указали саму хеш-функцию, тк например поиск коллизий для криптографических хешей кроме как полным перебором (за исключением rainbow tables, но считайте это тоже брутфорс =) ) невозможен. С другой стороны для простых хешей есть разные методики подбора.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.