数字技术 · 第 3 篇 / 共 10 篇

哈希算法:数字世界里的“超级指纹”,到底是个啥?

提到区块链,大家肯定都听过比特币,但比特币和整个区块链技术最底层的基石,其实是一个叫“哈希算法”的数学魔术。这个词听着跟天书一样,很多学计算机的人毕业了都没搞明白它到底是怎么运作的。其实,你可以把哈希算法理解成给数字世界里的任何东西(不管是文字、图片还是视频)拍一张“超级指纹”。在这个世界上,没有任何两样东西的指纹是一模一样的,而且哪怕只改一个标点符号,指纹也会发生翻天覆地的变化。正是靠着这个神奇的魔术,区块链才能做到“不可篡改”。今天咱们不讲代码,用最直白的生活比喻,看看这个超级指纹是怎么保护数据的。

更新: 阅读时间:约 5 分钟 编辑:财经观察室编辑部

01

哈希算法:把任意长度的东西,变成一串固定长度的“乱码”

咱们举个例子。你有一句话:“张三欠我100块”。你把这句话扔进哈希算法(比如常用的SHA-256算法)里,机器一秒钟就能吐出一串64位的乱码,比如:8f4a...99d1。这串乱码就是这句话的哈希值,也就是它的“指纹”。

奇妙的地方在哪里?

第一,只要这句话不变,不管你在哪台电脑上计算,算出来的这串乱码永远一模一样。

第二,如果你把这句话改了一个字,比如改成“张三欠我101块”。虽然只多了一个“1”,但这串哈希值会被彻底改变,跟你原来的指纹再没有半毛钱关系。

第三,也是最牛的一点:它是一种“单向”的数学运算。你可以瞬间从“张三欠我100块”算出这串乱码,但如果你只拿着这串乱码,就算你用全世界的超级计算机,也算不出原文到底写了什么。

02

为什么哈希算法能防止数据被篡改?

咱们回到区块链上。区块链其实就是一个个的“数据块”连在一起。每个数据块里,包含了这三样东西:一是这一页的账本记录(比如十笔转账记录),二是上一页账本的“哈希指纹”,三是这一页自己的“哈希指纹”。

如果有个黑客想偷偷把账本里的一笔转账记录改掉,比如把给李四转的100块,改成转一万块。他只要一动这页的数据,这页的哈希值立马就全变了!这就好比你把一个汉字改了,整页书的防伪水印瞬间就变了。

而且,下一页的账本里还记着这一页的“旧指纹”呢。只要这个指纹对不上,后面所有的账本全都崩盘了。黑客要想彻底掩盖,他就得把后面的几百、几千页账本全改了。在全世界的电脑都在监视的情况下,这根本不可能办到。

03

哈希算法的日常应用:除了记账,还能干啥?

别以为哈希算法只用在区块链里,你每天都在用它。

第一,密码保护。你登录网站时输入的密码,网站后台是不会直接存你的密码的,他们存的只是你密码的哈希指纹。哪怕黑客攻破了服务器,也只能拿到一堆乱码,根本不知道你的真密码。

第二,网盘秒传。你把一部一两个G的电影上传到网盘,一点上传瞬间就完成了。为什么这么快?因为你的网盘软件算了一下这部电影的哈希指纹,发现别人早就传过了,网盘后台直接把那部现成的电影塞到了你的账户里,这叫“秒传”。

第三,版权保护。很多数字照片、艺术作品,都在链上存了哈希指纹,以后要是有人盗用,算一下哈希值就知道是不是原版。

04

常见问答

Q1哈希算法能破解吗?

理论上,有一种方法叫“碰撞”,也就是找到一个不同的文件,算出相同的哈希值,但这在现实中需要耗费天文数字的算力。现有的SHA-256算法在量子计算机成熟之前,是极其安全的。

Q2哈希值可以逆向还原成原文件吗?

绝对不可以。哈希算法不是加密解密,它就是一场“粉碎机”,算出的指纹是不可逆的。

05

写在最后

哈希算法,就是数字世界里构建信任的基石。它让数据有了“身份证”,让篡改无处遁形。在这个充满了虚假和谎言的信息时代,只有这段冰冷的数学代码,能永远诚实地说真话。