LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 行情分析 > 入门科普:什么是哈希算法?

入门科普:什么是哈希算法?

2020-02-26 大杂说 来源:区块链网络

关于“算法”一词,目前国内用户使用的比较模糊,有时指共识机制,比如POW算法,POS算法;有时指具体的Hash算法,比如SHA256,SCRYPT。

应该说这是由于早期从外文资料翻译过来概念模糊导致的错误,后来人云亦云。作为区块链算法,哈希算法一直让普通大众感到晦涩难懂,那么究竟它是什么,有什么用途呢?

01什么是哈希算法

哈希算法并不是指的某一种算法,而是某一类算法,就像水果并不是只有苹果,还有香蕉、哈密瓜、葡萄......等等,很多很多的。只要符合这类型算法的特点就属于哈希算法,什么算法的特点呢,就是可以将任意长度的信息转换成一段固定长度的字符串。

哈希的意思就是引入随机数量的输入数据,将其加密,然后得出一个固定输出数据,就叫做哈希。哈希算法是一种只能加密,不能解密的密码学算法,是将任意长度的二进制值映射为较短的固定长度的二进制值。输入可以是任何数据,只要能代表单个字节,一个MP3文件,整本小说,你的银行账单,甚至是整个互联网。关键在于输入可以无限大。哈希算法可以根据你的需求来进行选择,现在公开的也有很多种算法。

举个例子:高德地图APP上,你设置了一个长串的地址,写上“家里‘两个字;另外设置一个长串的地址,写上”公司“两个字,当你在定位的时候,只需要选择”家里“这个地址,就可以快速的查找到家里的信息,司机也就可以快速导航到达。这个不算那么严谨,但哈希算法大约就是这么回事,把你长串的十几个字的地址映射成为了较短的两个字;

02哈希算法的分类

哈希算法其实有很多种,例如 md5 ,SHA256 等等,但是它们总体上可以分为两大类,一类是普通哈希,另外一类是加密哈希,cryptographic hash function 。

加密哈希跟普通哈希的区别就是安全性,一般原则是只要一种哈希算法出现过碰撞,就会不被推荐成为加密哈希了,只有安全度高的哈希算法才能用作加密哈希。同时加密哈希其实也能当普通哈希来用,Git 版本控制工具就是用 SHA-1 这个加密哈希算法来做完整性校验的。一般来讲越安全的哈希算法,处理速度也就越慢,所以并不是所有的场合都适合用加密哈希来替代普通哈希。

哈希算法的输出长度是固定的,而加密算法的输出长度是跟数据本身长度直接相关的,哈希是不可以逆向运算出数据的,而加密算法的输出是要能够逆向运算出数据的所以加密哈希算法只是被用在加密过程中,但是它本身不是加密算法。总之,哈希算法有很多种,长度越长的算法基本认为越安全。安全度低的哈希算法被认为是普通哈希算法,主要用来做完整性校验。安全度高的被称为加密哈希算法,会被用在加密算法中。所谓的高低都是相对概念,例如 MD5 曾经属于加密哈希,但是目前只能用来做安全校验了。而从2017年开始,SHA-1 算法生成的加密证书也会被各大浏览器拒绝了。目前最流行的加密算法是 SHA-2 ,但是跟 SHA-1 不同,SHA-2 不是一种算法,而是一系列算法的统称,其中就包括咱们之前提过的 SHA-256 。

03哈希算法的作用

哈希算法的主要作用是——利用哈希算法的防篡改性,用来验证信息的完整,因为如果信息在传递过程中被篡改,那么运行哈希计算得到的哈希值与原来的哈希值不一样。在区块链中,哈希函数的抗碰撞性用来做区块和交易的完整性验证,一有篡改就能被识别出来。

简单来说,哈希使得区块链上的人对现在的整体状态达成共识,电子签名却保证了所有交易都只由正确的人发出。我们依赖于这两个特性,来保证区块链不会存在任何欺诈和贪污现象。

—-

编译者/作者:大杂说

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...