首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

区块链第一讲:入门必懂哈希值

来源:米饭君

上了牌桌,看着亲戚们一张张油腻的脸,一边打骰一边抱怨起来,“就知道赌博,现在赌钱可犯法啊,天天就知道坑我这个炮架子。”

二姨扣上一把牌,舔了舔牙上的菜叶说,“你可别从北京回来就吓唬我们,你昨儿不还发朋友圈,说我们这不叫打麻将,咱叫挖矿。”

从北京互金一员变成村里二狗之后,二姨的一句话戳到了我的G点,让我仿佛又到达了在北京币圈时的高潮。

一、请叫我矿工

二姨打一张定个中。

“打完这张之后,请叫我矿工。”我打算先来个小科普,给他们一个下马威洗洗脸,

“这一局麻将,就是一轮挖矿,麻将有胡牌的规矩,挖矿有挖矿的玩法。

我现在这一把屎一样的烂牌,和那一堆还没摸到的牌,毫无规律,我不能保证我能拿到什么牌,但是最后我凑齐了胡了,我就赢了。

区块链挖矿也一样,运算特定的哈希值,谁先算出来,谁就赢了一轮。

讲到这里必须说一下哈希值,首先要了解的是MD5这个概念,全称为:Message Digest Algorithm MD5,这么长串单词也不要慌,你记着MD5就行了。

它是一种散列函数,可能很多粉丝关于函数的概念都还给老师了。你可以当它是一串特定的计算公式。

举个栗子。(+2)就是一种计算公式。

给到任意一个数字比如3,运行这个计算公式则是:3+2=5

而MD5是更复杂的计算公式,复杂到可用于加密。可以百度“MD5加密”自己尝试一下MD5加密。

任意数据,都可以通过MD5这个函数进行运算,得出相应数据。这个数据则被称为“哈希值

对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。(运算过程米饭君也不是很了解,毕竟文科生)

总之你们知道这是一个复杂到一两句话说不清楚的函数就可以了。

MD5有个很强的地方,那就是很难通过哈希值,来反推出原始数据。

比如刚才那个例子,还是运行(+2)的计算公式,如果运算结果是6,那么初始数据大家都知道是4了。毕竟4+2=6是小学题。

而某数据通过MD5运算后得出哈希值,是很难被算出原始数据的。

比如数字“1”的哈希值为“c4ca4238a0b923820dcc509a6f75849b”是不是很厉害。

此外,哪怕原始数据有一点点改动,得出的数据都相差很大,比如:

“11111”的哈希值为“b0baee9d279d34fa1dfd71aadb908c3f

“11112”的哈希值为“afcb7a2f1c158286b48062cd885a9866

那么如果我知道某数据的哈希值,想要求得原始数据怎么办,对不起,没办法,只能挨个试了。直到试出原始数据。

为什么大家都在说比特币不会被篡改和伪造。可以在哈希值这里理解一下。

若皇帝发了一封保密的圣旨,然后将圣旨内容的哈希值公示出来,这个事情,虽然大家都知道这封圣旨的哈希值,但是确无法得到圣旨的内容。

然后太监把圣旨宣读给接旨的大臣,大臣只需要将内容求出哈希值,与公示的圣旨哈希值一对比,就知道太监有没有篡改或者调换圣旨。

上面这个例子,会对以后更深入理解区块链和各种币有所帮助。

今天就先讲到这里,本来准备了好几篇文章,可是改了好几天,还是觉得应该从零基础开始跟大家聊起,米饭君并不是专家,希望和大家多多学习交流。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180308A1QQ3L00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券