如何解码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>";
答案 0 :(得分:3)
MD5,SHA-1和CRC32是哈希函数。这意味着它们无法逆转。 1 您可以更好地查看name
标记的file
属性。
1 你可以 2 强制它们,但由于它们可以将可变长度数据表示为固定长度的数据,因为它具有鸽子原理和只是简单的概率,你更有可能获得原始输入不的东西。
2 但是,SHA-1需要永远。
答案 1 :(得分:1)
哈希函数生成代表某些任意数据的数字。它们可用于验证数据是否已更改(即使单个位已更改,良好的散列函数也应生成完全不同的散列)。
由于您在数字中转换任意数量的数据而导致信息丢失,这意味着很难将其反转。从技术上讲,哈希有无数可能的结果,因为数据可以是任何长度。对于有限的数据大小,仍然可能存在特定散列的多个数据值,这称为冲突。
对于某些数据集(例如密码),您可以生成所有可能的数据组合,并检查它们是否与哈希匹配。如果您在检查的同时进行生成,则称为“暴力破解”。您还可以存储所有可能的组合(对于有限的范围,例如所有字典作品或特定大小的所有字符组合),然后查找它。这被称为彩虹表,可用于反转多个哈希值。
将密码存储为哈希而不是纯文本是一种好习惯,但为了确保密码难以反转,他们会为每个密码添加一些随机数据并将其与密码一起存储,这称为salting。这种盐意味着暴力破解密码需要更长的时间。
在这种情况下,它们可能是指定用于验证文件完整性并显示在传输(或存储)期间发生的任何损坏的mp3文件的哈希值。由于您必须生成所有可能的兆字节数据组合,因此无法对其进行反转。但是如果你有文件本身就没有任何理由。您可以通过在其上运行校验和生成程序来确认它们是文件的哈希值。