2016-04-06 2 views
0

Я загружал Download Android Studio and SDK Tools. Было написано SHA-1 Checksum и его значение указано f9b59d72413649d31e633207e31f456443e7ea0b.Контрольная сумма SHA-1 проверена?

Мои вопросы:

1) Какая польза от этого?

2) Как проверить и проверить его на Window и linux?

Могу ли я также сделать контрольную сумму SHA-1 любого файла?

+0

Он используется для генерации сигнатуры файла, чтобы убедиться, что файл не поврежден. В linux см. Команду 'sha1sum'. – Pierre

ответ

2

1) Каково его использование?

В сущности, хеширование представляет собой процесс, в одну сторону (необратимое), который принимает некоторые входные данные и выдает строку - как правило, в шестнадцатеричном - фиксированной длины, которая уникально идентифицирует *, что конкретные входные данные. Это очень полезно и имеет множество приложений, но в вашем случае оно используется для проверки целостности файлов. Веб-сайт загружает хэш файла для просмотра в мире, и когда файл загружается на ваш компьютер, вы проверяете, будет ли хэш, который вы вычисляете, локально, соответствует хешу, отображаемому на веб-сайте. Если они совпадают, файл остается нетронутым, но если этого не происходит, файл на вашем компьютере не идентичен файлу на сервере - скорее всего, потому что он был поврежден/изменен в пути.

2) Как проверить и проверить его на Windows и Linux?

По крайней мере, на системах * nix существует несколько способов сравнения хешей. Ничто не мешает вам вручную проверять каждый символ двух хэшей на равенство - это часто бывает быстро, когда вы просто хотите проверить один файл. Во всяком случае, большинство хэширующих программ имеют параметр -c для этой цели, который будет выводить «ОК» в случае совпадения. Для того, чтобы вручную ввести хэш и файл и трубы как для SHA1SUM для сравнения, сделать это:

$ echo "672d844c60553f9b3db9844dc29ddf49bc426f45" /bin/echo | sha1sum -c - 
/bin/echo: OK 

Для вычисления хэша и сделать файл (echo.sha1), содержащее имя хэш и путем к файлу + файл:

# calculate hash and write it along with the file path + file name to a file 
$ sha1sum /bin/echo > echo.sha1 

# see the contents of the file 
$ cat echo.sha1 
672d844c60553f9b3db9844dc29ddf49bc426f45 /bin/echo 

# do the comparison 
$ sha1sum -c echo.sha1 
/bin/echo: OK 

Microsoft, по-видимому, предоставляет The File Checksum Integrity Verifier с той же целью. Я нахожусь в Linux и не тестировал его, но в описании написано:

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

Я не согласен с использованием Microsoft фразы «криптографический хеш» в этом контексте; возможно, программа устарела. Во всяком случае, для записи MD5 и SHA1 не являются криптографически безопасными алгоритмами хэширования. Тем не менее, они отлично подходят для быстрой проверки целостности файлов.

Могу ли я также сделать контрольную сумму SHA-1 любого файла?

Вы действительно можете. На самом деле, нет возможности проверить целостность файла без, вычисляя хэш на вашем компьютере - его часть процесса. Чтобы получить sha1 сумму файла на Linux/Unix (в данном случае «эхо» бинарные снова), вы можете просто сделать:

$ sha1sum /bin/echo 
672d844c60553f9b3db9844dc29ddf49bc426f45 /bin/echo 

Есть другая SHA хэша длина:

$ sha512sum /bin/echo 
1f481804f114677efbfc1438b04e88af5be8507e098792b714939fcd346b7477fdb4ae0c53fd48e96d1031fc8d6e3d8c8d4c4c80e121f5c5a39d18c912b33a11 /bin/echo 

MD5 используется для тех же целей в течение длительного времени, а иногда и до сих пор (но, опять же, не использовать MD5 или SHA1 для шифрования):

$ md5sum /bin/echo 
482a44200637097351e30c80b1155c27 /bin/echo 

Как вы можете видеть ниже, он работает для строк как Что ж. Опция -n после echo выделяет символ новой строки, который в противном случае был бы частью строки и приводил к неправильному хешу.

$ echo -n "some_string" | sha256sum 
539a374ff43dce2e894fd4061aa545e6f7f5972d40ee9a1676901fb92125ffee 

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

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

  • "(...), который однозначно идентифицирует (...)" является перепроизводство заявление. Here's why. Ничто в этом мире не является совершенным - кроме one-time pads :)
Смежные вопросы