域名频道资讯站
我们一直在努力制造惊吓

【区块链那些事儿】1.3 哈希值

【区块链那些事儿】1.3 哈希值

哈希,是英文“Hash”的音译,聊到区块链时不可避免的一个词,那么“哈希”、“哈希函数”、“哈希算法”到底是什么呢?有啥用途呢?

1. 哈希是一种算法。

哈希算法接收一段明文后,会以一种不可逆的方式将其转化为一段长度较短、位数固定的散列数据。具体来讲——

哈希函数(Hash Function),也称为散列函数或杂凑函数。哈希函数是一个公开函数,可以将任意长度的消息M映射成为一个长度较短且长度固定的值HM),称HM)为哈希值、散列值(Hash Value)、杂凑值或者消息摘要(Message Digest)。它是一种单向密码体制,即一个从明文到密文的不可逆映射,只有加密过程,没有解密过程。

它的函数表达式为:h=Hm

无论输入是什么数字格式、文件有多大,输出都是固定长度的比特串。以比特币使用的Sh256算法为例,无论输入是什么数据文件,输出就是256bit

每个bit就是一位0或者1256bit就是2560或者1二进制数字串,用16进制数字表示的话,就是多少位呢?16等于24次方,所以每一位16进制数字可以代表4bit。那么,256bit16进制数字表示,当然是256除以4等于64位。

【区块链那些事儿】1.3 哈希值 

上图是从bit.com随意截取的哈希值,如果有兴趣数数的话会发现是64位的。

2. 哈希函数的特点。

【区块链那些事儿】1.3 哈希值 

哈希算法是一种单向密码机制,易压缩、易计算、单向性以及抗碰撞性。简而言之,即:

加密过程不可逆,意味着我们无法通过输出的散列数据倒推原来的明文;

输入的明文与输出的散列数据一一对应,任何一个输入信息的变化,都必将导致最终输出的散列数据的变化。

3. SHA家族

SHASecure Hash Algorithm,安全散列算法。家族共有五位成员,分别是SHA-1SHA-224SHA-256SHA-384,和SHA-512,比特币常用的算法就是SHA-256

4. 哈希算法的作用

【区块链那些事儿】1.3 哈希值 

我们以这个下载地址为例。你可以用软件生成下载文件的SHA1值,同上面的数值相对比,如果文件窜改,或者文件下载出错了,计算出来的值就不一样。

再比如,当你上传电影时,经常会秒传,是因为服务器已经有这部电影了。但是数据库几十万个电影,是不可能把你上传的这几十个G的资源一个字节一个字节进行比较,所以一般就会先生成哈希值,然后在服务器里查找比对已有电影的哈希值。

也就是说,哈希值相当于给数据生成标签。而且因为哈希函数的不可逆,哪怕有人看到了“标签”也不会知道标签代表了什么。

所以,哈希值的主要作用即“安全验证”,一是保证用户密码安全,二是保证区块链上的信息不会被篡改。

顺便一提,哈希值理论上可能重复,不过这个概率非常之低,而且也会有解决冲突的算法。

本文素材来自互联网

赞(0)
分享到: 更多 (0)

中国专业的网站域名及网站空间提供商

买域名买空间

登录

注册