2013-04-06 2 views
0

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

<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>"; 
+0

Знаете ли вы о [хэшах] (http://en.wikipedia.org/wiki/Hash_function)? – sectus

+0

нет, я понятия не имею, я читаю его сейчас, хотя –

ответ

1

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

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

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

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

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

+0

Большое спасибо, Это ответ, который я искал. –

3

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

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

Это будет навсегда для SHA-1.

+0

Итак, как вы считаете, есть ли какой-нибудь полезный магазин информации в этих sha1 или md5 или они просто существуют по другим причинам? Я предполагаю, что есть URL-адрес или автор в этих –

+0

@KhushwantSingh: они позволяют вам проверить, что файл, который вы загружаете в другом месте, не поврежден. – icktoofay