区块链哈希函数
区块链是一个不断增长的分类账,以安全、按时间顺序和不可变的方式永久记录所有已发生的交易。为了使数据安全,区块链使用哈希函数。
散列:
简单来说,散列意味着获取任意长度的输入字符串并给出固定长度的输出。固定长度的输出称为等效散列或简称散列。
加密哈希函数的类型:
- 安全散列算法(SHA-2 和 SHA-3)
- RACE Integrity Primitives 评估消息摘要 (RIPEMD)
- 消息摘要算法 5 (MD5)
- 布莱克2
SHA-256:
SHA-256 是所有加密哈希函数中最著名的,因为它广泛用于区块链技术。 SHA-256 哈希算法由美国国家安全局 (NSA) 于 2001 年开发。
哈希过程:
对于这个哈希函数,我们可以使用 Anders Brownworth Hash Program,这是一个由 Anders Brownworth 开发的程序。
如果我们在数据部分键入任何字符,我们将在哈希部分观察其对应的加密哈希。
输入中的微小变化会改变哈希:
如果我们对输入做一个小的改变,产生的等效散列将完全不同。
将大写“T”更改为小“t”完全改变了等效哈希。
从等效哈希中确定原始字符串非常困难,但并非不可能。从哈希中确定原始字符串的唯一方法是使用“蛮力”。蛮力基本上意味着我们必须采用随机输入,对它们进行散列并将它们与目标散列进行比较。
基本上可以有三种情况:
- 最佳情况:
我们在第一次尝试时就得到了答案。这种情况发生的几率是天文数字。 - 平均情况:
对于 SHA-256,我们在 2^256/2 = 2^255 次后得到答案。换句话说,它是一个巨大的数字。 - 最坏的情况:
我们在数据末尾得到答案。