什么是哈希哈希算法(加密方式)?

(A = 1,B = 2,C = 3等):(例如,哈希算法的一个基本例子就是将特定资讯的所有字母值加起来。):

资料来源:http://www.practicalnetworking.net

我们对原始资讯hello的示例哈希结果是52。如果有人要更改我们的原始资讯并通过相同的哈希算法处理它,结果将会不同:

资料来源:http://www.practicalnetworking.net

通过比较每次计算的资讯摘要,很容易确定我们的资讯被更改。

如果原始资讯已更改为cellt,那么结果摘要仍然是52,并且我们不会暗示原始资讯已被更改。

通常,合法哈希算法在被批准使用行业用途之前必须保持典型品质:

在数学上不可能从摘要中提取原始资讯:

实际上,散列有时被称为单向加密:信息可以被加密,但是不可能被解密。这是使用哈希算法中的单向函数完成的。
在某种程度上,我们的示例哈希算法满足这种条件。不可能只是知道导致产生的摘要52而认识你。主要是因为可能有成千上万的资讯导致相同的摘要。

对原始信息的轻微改变会导致摘要发生程度变化:

任何细微的修改—即使雕像改变个别字符一样小—到原始资讯应该大大改变计算的摘要。这有时被称为雪崩效应。
这是可能的,因为哈希算法不只是一个计算。这是一系列的计算,反复重复完成。因此,开始时的一个小小变化就会在结果汇总中产生一个指数级规模的变化。就像雪球在山下翻滚一样,形成雪崩。

哈希算法的结果始终是相同的长度:

对于最初产生的摘要不提供有关原始资讯的任何提示或提示(包括其长度)常数。资讯的长度延伸到资讯的长度增加而增大。
在我们的示例哈希算法中,单词越长,所得摘要恰好减小,因为我们将越来越多的字母加在一起。然而,在行业认可的哈希算法中,哈希hello这个词会产生与哈希整个国会图书馆相同大小的文摘。

构建生成给定摘要的资讯是不可行的:

使用我们的示例哈希算法,如果给定摘要52,生成可能是原始资讯的单词列表不会太困难。这是该属性试图阻止的内容。
在一个适当的算法中,这应该是不可行的—在试图找到每个一个可能的资讯组合之前,你一直发现匹配(也就是强制执行该算法)。但是,适当的大的文摘大小,这甚至变得不可行。

下面是一个常见的行业公认的哈希算法表:
算法摘要长度
MD5 128位
SHA或SHA1 160位
SHA256 256位(比特币)
SHA3​​84 384位
因此,这些哈希算法中的每一个都满足基本密码哈希算法性质。以及其他之间的主要区别在于所得摘要的大小。与密码一样,通常认为导致摘要长度的哈希算法经常被认为更安全。