Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hash 哈希到底是什么?_Hash_Md5 - Fatal编程技术网

Hash 哈希到底是什么?

Hash 哈希到底是什么?,hash,md5,Hash,Md5,我正在学习MD5。我在MD5的大多数描述中发现了一个术语“哈希”。我在谷歌上搜索了“散列”,但在计算机编程中找不到“散列”的确切术语 为什么我们在计算机编程中使用“散列”?这个词的起源是什么 散列值(或简单的散列),也可以是 称为消息摘要,是一个数字 由字符串文本生成。这个 哈希值大大小于 文本本身,并由 公式的形式是 极不可能有其他人 文本将产生相同的哈希值 你指的是那个。它用于为给定的一组参数生成唯一值 散列的一个重要用途是密码安全。不在数据库中保存密码,而是保存密码的散列。散列应该是从00

我正在学习MD5。我在MD5的大多数描述中发现了一个术语“哈希”。我在谷歌上搜索了“散列”,但在计算机编程中找不到“散列”的确切术语

为什么我们在计算机编程中使用“散列”?这个词的起源是什么

散列值(或简单的散列),也可以是 称为消息摘要,是一个数字 由字符串文本生成。这个 哈希值大大小于 文本本身,并由 公式的形式是 极不可能有其他人 文本将产生相同的哈希值

你指的是那个。它用于为给定的一组参数生成唯一值


散列的一个重要用途是密码安全。不在数据库中保存密码,而是保存密码的散列。

散列应该是从00到FF(十六进制)的值的唯一组合,表示特定数据段,可以是文件或字节字符串。它主要用于密码存储和验证,并测试一个文件是否与另一个文件相同(即,您散列两个文件,如果它们匹配,则它们是同一个文件)


通常,任何SHA算法都优于MD5,因为使用它时可能会发生哈希冲突。看。

我想说任何答案都是猜测,所以我会把它变成一个社区维基

土豆条或土豆条是一种早餐食品,将土豆切成细长的条状(比炸薯条小,短,但比例相似),然后用动物或植物脂肪将条状物炸成褐色,粘在一起,然后烹调而成。打个比方,“散列”一个数字意味着使用一种方法将它转换成另一个通常更小的数字,这种方法仍然取决于输入的数字

我相信术语“散列”最早是在“散列表”的上下文中使用的,它在20世纪60年代在大型机类型的机器上被广泛使用。在这些情况下,通常将大范围的整数值转换为小整数的“哈希表索引”。对于一个高效的哈希表来说,“哈希函数”必须均匀分布或“平坦”


我没有引证,这就是我从80年代听到这个比喻以来对它的理解。不过,当这个术语第一次被应用时,一定有人在那里。

加布里埃尔1836的回答中补充说,哈希函数的一个重要特性是它是单向函数,这意味着你不能从它的哈希值生成原始字符串。

根据维基百科,计算机编程领域的Donald Knuth能够将哈希函数的概念追溯到1953年的IBM内部备忘录

为了好玩,这里有一段在(1899)中被偷听到的对话:

他们必须让散列表整天运行,才能养活我们。”这将是一个短期事件


散列函数将输入散列到一个值,需要一个值,并且不需要存储证明。迹象是每个人都说我们必须在储存盐的同时匹配新的仍然有效。数学上相关的概念是

杂烩是一种早餐食品,将土豆切成细长的条状(比炸薯条小,短,但比例相似),然后用动物或植物脂肪将条状物炸成棕色,粘在一起,然后烹调而成。打个比方,对一个数字进行“散列”意味着使用某种方法将其变成一个无法识别的其他数字,而这种方法仍然在某种程度上取决于输入的数字。我没有引证,这就是我从80年代听到这个比喻以来对它的理解。但是,当这个术语第一次被应用时,一定有人在那里。因此字符串的“散列”将是它在散列表中的索引。@Xinus,这个链接很好,我也要尝试一下。我想我甚至会接受他的最后建议。lol:-]一般来说,哈希不像您描述的那样安全。像java.lang.String所使用的那样,常规散列很容易可逆。您正在谈论被称为“加密哈希”的哈希子集。等等,哈希值小于实际文本?我的MD5函数必须被破坏,它将hi转换为49f68a5c8493ec2c0bf489821c21fc3bAh…所以hash value=hash=message diest。它们都是相同的?@Omar,哈希函数通常将任意大小的数据转换为固定大小的数据,因此,不管输入长度如何,哈希函数的输出长度都是相同的。不过,这个“规则”也有例外,请参见。哈希不是唯一的,也不应该是唯一的。哈希无法判断两个文件是否相同;如果哈希匹配,则文件可能不同。散列用于判断文件是否不同;如果哈希值不同,则文件必须不同。