加密哈希函数
什么是加密哈希函数?
加密哈希函数是一种算法,即特定操作的可重复序列,可用于将可变长度的任意数据字符串转换为固定长度和格式之一,称为哈希。
哈希函数最简单的示例之一是将数字中的数字相加,直到留下一位数字的输出。例如,如果输入是 49,则将 4 和 9 相加得到 13,然后将其数字 1 和 3 再次相加,得到输出 4。无论输入数字的长度如何,输出始终是一个数字。
然而,这不是一个好的算法,因为为了很好地执行其功能,哈希函数需要具备以下几个特征:
- 计算任何给定输入的输出应该很容易,但几乎不可能反转该过程并计算已知输出的输入;
- 确定性——将特定的输入输入到算法中应该总是产生相同的输出;
- 抗碰撞性——两个不同的输入不太可能产生相同的输出;
- 雪崩效应——即使改变输入中的单个数据位也会导致截然不同的输出。
哈希函数应用于许多用例,例如,作为校验和来验证计算机文件在长时间存储传输后的完整性,或用于随机化函数。
它们也是工作量证明加密货币挖掘的关键组成部分,例如使用 SHA-256 哈希函数的比特币 (BTC)。为了向区块链添加新区块并领取新开采的比特币奖励,矿工首先需要生成低于特定阈值(称为目标)的哈希值。
事实上,哈希是伪随机的,并且在通过哈希函数实际运行之前不可能预测任何输入的输出,这确保了矿工无法凭空打印新的比特币,并且需要证明他们所执行的工作。