入门区块链之我填的第一个坑

最近打算入坑币圈,看了一些文章,不得要领。忽然看到阮一峰老师有几篇入门文章,便认真来学了。然后发现文中一点错误,然后,竟然还有错误,然后,找到了错误的源头,不禁兴奋,文以志之。

 

读阮一峰《区块链入门教程》,读到“举例来说,字符串123的哈希是a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0(十六进制),转成二进制就是256位,而且只有123能得到这个哈希。”时,忽然,觉着哪里不对。算了一下,256 位,十六进制表示,该是 64 个字符,这一段看起来有点短。数了一下,果然,40 个字符。顿时觉着世界不美好了,印象里消息摘要是有个 256 的,40 是个什么鬼?

 

立刻查了一下,消息摘要有多种,sha0 和 sha1 是 160 位的,sha2 有 256 位,还有其他位,md5 128 位。 哦哦,欧了,原来是 sha 摘要的。

 

事情本来到这里就完了,愉快地读下面的文章,你好我好大家好,世界很美好。

但是,手欠,写了几行代码,想验证一下这个哈希码的正确性。

 

入门区块链之我填的第一个坑

运行 :

 

入门区块链之我填的第一个坑

 

天哪,对不起来啊,世界又不好了。问题出在哪里呢,阮大,这么牛叉的人物,该不会出错吧。我哪里出问题了呢?我的代码是不是有问题。

于是,到网上找了一些在线工具,验证了一下 123 的摘要,发现,我是对的。

但有一个漏洞,就是,没有 sha0 的方法,查 java 文档,没有,找工具,也看不到支持这个算法,后来用 linux shasum,仍然是没有这个算法。大概,太古老了,不安全了,废弃了。

 

鲁迅先生说过,你如果说我是错的,你最好证明你是对的。

 

这件事儿上,至少 40 个字符,我是数的清的,摘要算法,我是不太有把握的,于是,小心谨慎地给阮老师文章写了一下评论,探讨这个问题。

 

入门区块链之我填的第一个坑

 

该吃饭了,但总感觉哪里不对。事儿解决不了,哪有心境吃饭呢。

 

入门区块链之我填的第一个坑

 

这个字符串百度上有 2710 个索引,绝大多数是阮大的这篇文章。除了第三页这一条

 

入门区块链之我填的第一个坑

 

从日期上看,这篇文章要早于阮大的文章 17 天,大概,阮大是从这里引用的。

看这篇文章,这个哈希码是一个 123.txt 文件的哈希码。这个文件是什么内容呢,产生了这个哈希码?看文章是原创,文件内容是什么,大概只有作者自己知道。于是,我就给作者留言,询问。但,什么时候能有回复,God knows。

常规推测,测试文件,不会搞得太复杂,一般也就新建一个空文件,测试用。于是,我也测试了一下。

 

入门区块链之我填的第一个坑

 

很明显,空文件是不对的。

于是,我继续在我原来的代码上去测试和验证,因为这个哈希码不一定是 sha,还可能是 md5,尝试,空,空格,换行,1,123,123换行,...,忽然

 

入门区块链之我填的第一个坑

 

这,这不对上了么!!

幸福来得太突然了,就好像在篮球场上,随手一抛投进了一个三分一样!兴奋的我原地转了三圈。

 

继续验证

 

入门区块链之我填的第一个坑

 

嗯嗯,两篇文章的信息都对上了。

这才是完美世界,严谨,准确,确定。

 

愉快地做饭,吃饭。然后写这篇文章。

 

好了,这是我入门区块链填的第一个坑。

这个坑,大概是阮大随手一敲,多了个换行造成的。但,剩下的人看和引用的时候,就不验证一下么。这个世界有这么让人信任吗?

 

写这篇,不是想黑阮大,阮大英明神武,岂是我黑的了的。只是蒙了个三分,过于兴奋,不禁写写。

我去继续读阮大的教程,入门区块链了。

 

另外,欢迎关注我的微信订阅号  沉思的萝卜 。

 

转载于:https://my.oschina.net/sdyan/blog/1837847