Hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。
什么,看不懂?看不懂就对了!
上面是百科上写的,我看着也迷糊。话说看这玩意也太没意思了,不过既然你来都来了,那给你讲个笑话吧。
很久很久以前,有个人叫十二,他发明了一个剃须机器并给大家介绍说,这个剃须机器非常方便,男人们只要把脸放在这个机器里,都不用自己动手,机器就会把你的胡子刮的倍儿干净!
这时候有人提出了问题:“那如果脸型不一样呢?”
十二说:“刮完了脸型就都一样了”
故事讲完了。
我们今天要说的哈希函数就是这种剃须机器,他可以把任何东西刮成相同的脸型,也就是把任意数据转换成【固定长度】的输出结果。
比如比特币上常见的 SHA256 算法,它就隶属于哈希家族,特点是可以把任意数值转化为一串共 256 位、由 0 和 1 来表示的数(由于 256 位太长不好展示,所以通常大家会再转化为 16 进制,转化后就变成了 64 位),所以 SHA256 的脸型就是一串 64 位的字符。
比如“派派”两个字 SHA256 值就是:
8c070d57ab1f537d262341183924e61f46623536e11de3c2ad392a709e1371ed
“派派最帅”四个字的 SHA256 是:
3fcc3ff8ba4052b38e2e5534a3765057e4f8623e865a439cfa70da8339daa844
一本 70 万字的《霸道总裁爱上我》 txt 文档的SHA256是:
05593504255b7df6d069da508e8e418cecddde8f7090e43dec3099769551e578
除了输出长度固定,哈希算法还有以下特点:
1、结果确定
无论你对“派派”两个字做几次哈希运算,并且无论是谁做,“派派”两个字的哈希值每次都是确定不变的。
2、无法反推
哈希的计算都是单向不可逆的,无法通过哈希值反推出原数据。也就是你无法通过哈希值还原出《霸道总裁爱上我》的原文。
3、变动敏感
派派在70万字的《霸道总裁爱上我》里面悄悄加了一个空格,它的哈希值就会变成
ebd36e570941e01ef9e52bc14f7083615a1395a4075c88434358391c9741fb59
对比之前的
05593504255b7df6d069da508e8e418cecddde8f7090e43dec3099769551e578
可以看出“改之毫厘,差之千里”,同理,一张图片哪怕有一个像素点的变化,一个软件的代码哪怕有一个标点的改动,所计算出的哈希值都会是完全不同的展示。
拥有有这些个特性,哈希值注定能作为一个完美的防伪手段。
2018 年 9 月 7 日起施行的《最高人民法院关于互联网法院审理案件若干问题的规定》第十一条也肯定了哈希值校验在法律上的有效性:
当事人提交的电子数据,通过电子签名、可信时间戳、哈希值校验、区块链等证据收集、固定和防篡改的技术手段或者通过电子取证存证平台认证,能够证明其真实性的,互联网法院应当确认。
(生活小技巧:大家平时签的合同、原创的文章、创作的图片都可以计算一下哈希,然后留存到互联网上,一旦产生纠纷,哈希值就是你啪啪打对方脸的利器。又比如你想发布一个预测,但又不能直说也可以把哈希发布出来,等应验了以后再出来跳大神...)
下面派派以校验比特派软件为例,教大家如何使用工具来计算哈希值
一、找到比特派软件和官方公布的哈希值
二、下载比特派后,使用哈希计算工具进行校验
这里可以使用两个在线校验工具(亲测手机电脑都可用)
https://oktools.net/file-hash
三、核对计算后的哈希值与官方公布的哈希值是否一致
我们在上面可以看到校验出的哈希和官方公布的哈希是完全一致的,这就说明你下载的软件和官方发布的软件完全一致。反之如果哈希值不同,那你应该是从其他渠道下到了假的 APP,可千万不要使用啊,这种软件都是对代码做了特定修改,是会盗取资产的假软件。
写在后面的话:
之前有用户问我,如果你们遇到讹人事件怎么办?
有坏人自己把自己的币悄悄转走,然后说是钱包方偷走的,死咬你们有后门。
其实哈希值就是很好的自证清白的手段,一旦有纠纷产生,钱包方会把软件的所有代码交由法律认可的第三方代码鉴定机构进行审计,由于哈希值都是提前公开过的,所以可以保证进行审计的软件代码与公开发布的软件代码是完全一致的。
坏人也就讹人失败。
群众之中可能偶尔有坏人,霸道总裁可能因为一点改变不再爱你,只有数学永远是你最值得信任的朋友。