hash算法想必大家都不陌生,以前的文章有介绍,也称为散列算法,是信息技术领域非常基础也非常重要的技术。它能将任意长度的二进制值(明文)映射为较短的固定长度的二进制值(Hash 值),并且不同的明文很难映射为相同的 Hash 值。
hash算法最早的用途是将一段数据进行签名,并公布hash运算后的值,接受者通过对收到的数据进行同样hash操作,对比hash后的值以证明该数据在传递过程中是否被修改过,比较常见的算法有MD5,SHA等,我们经常会在正规的官方下载网站发现某个下载文件的MD5值,这就是告诉用户自行验证你从其他网站下载的文件是否有没有被动过手脚
由于比特币将hash算法作为pow工作量证明的重要手段,后续的各种采用pow的数字货币也延续了这个设计,以SHA256、MD5(MD5后来被证明不具备强碰撞性数字货币一般不用)为代表算法在设计之初属于算法都是算力敏感型,意味着计算资源是瓶颈,主频越高的 CPU 进行 Hash 的速度也越快。这个设计直接导致后来的矿机出现