sha1, crc32 и md5, как прочитать эти данные?

Как я могу декодировать md5, crc32 и sha1, ниже приведен файл xml, а затем код, который я использую для получения данных.

<files>
  <file name="AtTheInn-Germany-Morrow78Collection.mp3" source="original">
    <format>VBR MP3</format>
    <title>At the Inn - Germany - Morrow 78 collection</title>
    <md5>056bbd63961450d9684ca54b35caed45</md5>
    <creator>Germany</creator>
    <album>Morrow 78 collection</album>
    <mtime>1256879264</mtime>
    <size>2165481</size>
    <crc32>22bab6a</crc32>
    <sha1>796fccc9b9dd9732612ee626c615050fd5d7483c</sha1>
    <length>179.59</length>
  </file>

И это код, который я использую, чтобы получить название и название альбома, как я могу понять sha1 и md5, любая помощь в любом направлении будет полезна, спасибо

<?php
    $search = $_GET['sku'];
    $catalogfile = $_GET['file'];
        $directory = "feeds/";
        $xmlfile = $directory . $catalogfile;
$xml = simplexml_load_file($xmlfile);

list($product) = $xml->xpath("//file[crc32 = '$search']");
echo "<head>";
echo "<title>$product->title</title>";

person Khushwant Singh    schedule 06.04.2013    source источник
comment
Знаете ли вы о хэшах?   -  person sectus    schedule 06.04.2013
comment
нет, понятия не имею, сейчас читаю   -  person Khushwant Singh    schedule 06.04.2013


Ответы (2)


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

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

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

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

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

person David C. Bishop    schedule 06.04.2013
comment
Большое спасибо, это ответ, который я искал. - person Khushwant Singh; 06.04.2013

MD5, SHA-1 и CRC32 – это хеш-функции. Это означает, что их нельзя обратить вспять.1 Вам больше повезет, изучив атрибут name тега file.

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

2 Однако для SHA-1 это займет целую вечность.

person icktoofay    schedule 06.04.2013
comment
Итак, простыми словами, как вы думаете, есть ли в этих sha1 или md5 какое-либо хранилище полезной информации, или они просто существуют по каким-то другим причинам? Я предполагаю, что в них есть URL или автор - person Khushwant Singh; 06.04.2013
comment
@KhushwantSingh: они позволяют вам убедиться, что файл, который вы загружаете из другого места, не поврежден. - person icktoofay; 06.04.2013