文件hash值_什么是hash值?经常听说的Sha256又是什么?

⽂件hash值_什么是hash值?经常听说的Sha256⼜是什么?
编者按:本⽂由Seabook海叔的技术分享,转载请注明来⾃Seabook海叔,并联系作者获得授权。
⼤家好,我的名字叫Seabook,或者⼤家可以叫我海叔。我是澳⼤利亚Deakin⼤学的在读博⼠⽣,我的主要研究⽅向是区块链底层算法,
今天开始我将为⼤家带来⼀个⼲货区块链的系列,主要以区块链的技术为主。希望⼤家喜欢,⼀起学习成长。
制动电阻
为了更清楚的讲清楚后⾯ ⽐特币是的技术原理(挖矿,数字签名,钱包地址等),我们先要了解⼀系列的基本知识点:
什么是Bit,Byte,decimal vs hexadecimal vs binary. ⼀位?⼀个字节?2进制,10进制,16进制 ?Hash, what is SHA256? Cryptography, 加密学,⼤学最容易挂科的科⽬?对称加密,⾮对称加密?数学之美 ⼤数字?1000,000,000,000 ⼀个trillion算⼤吗?
地球上有多少沙⼦?⼀杯⽔⾥⾯有多少分⼦?
我们今天就看⼀下什么是Hash值? ⽐特币⾥⾯的SHA256⼜是⼀个什么⿁东西?
先看百度百科的定义。
哈希值,⼜称:散列函数(或散列算法,⼜称哈希函数,英语:Hash Function)是⼀种从任何⼀种数据中创建⼩的数字“指纹”的⽅法。散
列函数把消息或数据压缩成摘要,使得数据量变⼩,将数据的格式固定下来。该函数将数据打乱混合,重新创建⼀个叫做散列值(hash
林麝values,hash codes,hash sums,或hashes)的指纹。散列值通常⽤⼀个短的随机字母和数字组成的字符串来代表。好的散列函数在输
⼊域中很少出现散列冲突。在散列表和数据处理中,不抑制冲突来区别数据,会使得数据库记录更难到。
海叔:反正海叔我是没看懂上⾯⾼冷 晦涩的解释。其实简单理解就是
通过hash函数能够使⼀个字符串,数字⽂件(⾳乐,图⽚,电影)等,产⽣⼀个唯⼀不变的字符串,这个字符串称为hash改变任何元字符串,数字⽂件(⾳乐,图⽚,电影)的任何⼀点,产⽣的hash将完全不同。从已经产⽣的hash,⼏乎不可能推导到原来的字符串,数字⽂件等。
举例如下: 假设有⼀个SeabookHashFunc,是⼀个简单的hash函数。下⾯⽤伪代码表⽰出来:
专利法实施细则String text1 = “My name is Seabook”String result = SeabookHashFunc(text1)9D5CE6EBA420717BE7E7D308B11F8207681B066C951D68F3994D19828F String text2 = “My name is seabook” // 唯⼀的区别是⼤写S变成⼩写s。String result = SeabookHash
Func(text1)91D99909F70B81D1F6110B888BC1212A2B530F3
满⾜定义:
1. 任何字符串前后改变⼀个S的⼤⼩写,产⽣完全不同的结果从Hash值⼏乎不可能知道原⽂是什么
了不起的盖茨比2012所以SeabookHashFunc是⼀个有效的hash函数,能产⽣hash值。
这是必须的,因为这⾥的SeabookHashFunc其实就是⼤名⿍⿍的Sha256的算法。Sha256是有NSA (National Security Agency) 发明
创造,属于SHA-2家族的hash算法,顾名思义SHA-2, 就有SHA-3家族,以太坊的hash,⽤的就是SHA3 (理论上第三代优于第⼆代)。
氨基酸水解
那我们进⼀步学习⼀下Sha256,在⽐特币的世界⾥⽤的最多的就是Sha256哦 (也有⼀些Base64编码,Base64就不是hash函数了, 跑题
了)
肖洛霍夫任何⼀串字符,数字⽂件(图⽚,⾳乐,电影), 经过Sha256的计算,会产⽣⼀个256bit的binary representation,也就是256/4 = 64位
的Hexdecimal的表达⽅式。这也是为什么上⼀篇
西部克:Bit? Byte? ⼆进制? ⼋进制⼗进制? ⼗六进制? 和⽐特币有猪关系?
zhuanlan.zhihu
是这个系列的基础了。
String text1 = “My name is Seabook”String result = SeabookHashFunc(text1)9D5CE6EBA420717BE7E7D308B11F8207681B066C951D68F3994D19828F342474如果有兴趣的同学可以数⼀下是不是64位。当然海叔我会⽤代码去计算。
“9D5CE6EBA420717BE7E7D308B11F8207681B066C951D68F3994D19828F342474”.length == 64
同学们: ⽐特币的世界⾥有哪些事Hash呢?
海叔:我们来看下⾯的这张图⽚
我们可以看到,所有出块的Hash都是通过Sha256计算出来,包含Merkle Root也是⼀个Hash值。(Merkle Root 这个开始有深度了,我
们后⾯会继续讲解)
同学:哈哈哈,现在我们懂啦,原来是这么⼀个回事,block hash原来是sha256计算出来的,根据hash的定义改变block⾥⾯任何的东
西,整个hash都会改变,所以出块以后就⼏乎不能更改块⾥⾯的记录了,是吗? 我的理解对吗?
海叔:骚年们,你们已经成长了,我们要挑战新的⾼度了。完美解释收官。

本文发布于:2024-09-23 00:25:34,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/398301.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:字符串   数据   函数   技术   数字   散列   改变   特币
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议