2010-04-03 1 views
1

Допустим, есть файл с именем myfile.txt со следующим содержанием:Файл hash: Изменяется ли он для одного и того же контента, но в другом порядке?

один два три

Другой файл, который называется yourfile.txt с следующим содержанием:

два три один

Будет SHA-1 будет одинаковым для обоих этих файлов, потому что контент тот же, но в другом порядке?

+0

Предупреждение: SHA-1 не считается защищенным. С некоторыми усилиями можно сгенерировать произвольный файл, который имеет тот же хеш, что и целевой файл. Скорее всего, это просто для загрузки изображений, которые не очень важны, но вы должны знать о возможностях. –

+0

@John: Спасибо за отзыв, но мое использование здесь о предотвращении дублирования файла. Поэтому, если кто-то пытается воспроизвести хэш, просто они не могут загрузить файл. Я был бы обеспокоен, если бы это было так, как тот же файл может быть загружен с другим хэшем. В любом случае, что бы вы предложили для обеспечения хэширования? Может быть полезно для будущего использования. – Nirmal

+0

@John: то, что вы описываете (поиск файла, который хеширует для заданной цели), называется «атакой профайла». Если вы знаете, как это сделать для SHA-1, то, во что бы то ни стало, опубликуйте его и станьте знаменитым. Поскольку сейчас самое лучшее, что криптографы достигают на SHA-1, это теоретическая атака столкновения (в которой нет предопределенной «цели»), которая, будучи «проще», чем общая атака, по-прежнему существенно дороже (потребуется тысячи ПК в течение нескольких месяцев). –

ответ

3

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

2

Нет, все будет по-другому. Хеши обычно работают итеративно над несколькими байтами.

Конечно, вы могли бы просто попробовать;)

+0

Да, я мог бы попробовать, но теперь я на машине клиента, и внезапное сомнение появилось параллельно :) – Nirmal

1

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

Но поскольку вы специально спросили о SHA-1, то да, они будут совершенно разными.

 
    SHA1("one two three") = a10600b129253b1aaaa860778bef2043ee40c715 
    SHA1("two three one") = 5b836799b259835e762c93964a68b958eb19461a 
+0

Для «безопасного» хэша он должен быть другим, или он не был бы слишком безопасным. Для любого старого хэша вы можете создать все, что захотите. – WhirlWind

+0

Если я создаю его сейчас по определению, он не может быть «старым», не так ли? :) В любом случае да, конечно, любой серьезный алгоритм хеширования даст разные результаты. –

+0

Моя основная причина для того, чтобы просить об этом - запретить пользователям загружать один и тот же файл дважды в любой момент. Но вдруг подумал, что произойдет, если содержимое просто поменяется. Теперь с результатами мое воскресенье спасено! – Nirmal

1

хэши «криптографический» предназначены для обнаружения изменений как транспозиций, в противном случае кто-то может принять сообщение электронной оплаты и изменить сумму до $ 9100,00 $ 1900,00 без обнаружения (по хэш в любом случае), который будет своего рода поражение цели ,

Смежные вопросы