Объедините md5 суммы частей, чтобы получить md5 сумму полной строки - PullRequest
2 голосов
/ 03 апреля 2012

Можно ли объединить две суммы md5 предложения, чтобы получить сумму md5 последнего предложения? например У меня есть предложение «Мне не нравится работать», и теперь я хочу сделать

md5 («Мне не нравится») + md5 («как работает») = md5 («Мне не нравится работать»)

Кроме того, возможно ли это с SHA1?

Ответы [ 3 ]

1 голос
/ 03 апреля 2012

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

Хороший алгоритм хеширования дает очень разные результаты для любого (малого или большого) изменения на входе и производит изменения, которые невозможно отнести к изменению.

SHA1 лучше, чем MD5 в этом отношении. MD5 больше не считается безопасным.

0 голосов
/ 03 апреля 2012

Вы можете сделать что-то подобное в Python, но за кулисами он просто объединяет все строки для вас.

import md5

m = md5.new()
m.update("I dont ")
m.update("like working")
print m.hexdigest()  # b436bd6442ee000b4778bdbc8bee71d9

m = md5.new()
m.update("I dont like working")
print m.hexdigest()  # b436bd6442ee000b4778bdbc8bee71d9
0 голосов
/ 03 апреля 2012

Я думаю, что ответ на оба вопроса - нет, но почему бы просто не проверить это самостоятельно?

...