计算机存储数据的方式为 0 或 1 ,最小单元为比特 (bit) 。2 的 256 次方可表示完宇宙中任何可观察到粒子,理论上在计算机中通过 256 个高低电平阵列可模拟所有的数据。 加密领域的散列函数散列函数 (hash function) 接受输入并生成特定长度的输出。数据被散列函数处理的过程我们定义为散列化 (Hashing),散列函数的输出称为散列,不同特征的散列函数指的是不同长度的输出。下文中提到的散列函数均指使用一种输出长度为 256 位(32字节)的散列函数,当然也存在比这更短或更长输出的散列函数。另外存在多种输出长度为 256 位的散列函数,在这里我们不关心具体使用哪种散列函数。 不同大小的文件,譬如视频文件、邮件文本等通过散列化之后输出长度固定为 256 位的二进制,在某种层度上散列化近似不可逆的压缩。安全的加密散列函数一个重要的特点就是不可逆,这意味着从输出中几乎不可能,或者说在数学和计算上不可能推导出原始输入。也就是说通过散列不能找出散列函数接收的输入数据。 通过散列函数可以达成两个优势:
在这里解释第二点,譬如我们以字符串 passowrd1 和 passowrd2 作为散列函数的输入,虽然输入只有最后一个字符有差异,但输出结果却截然不同。 如果你想尝试找出一个散列的原始输入,只能通过尝试所有的输入组合进行散列化直到找出与目标散列一致的输出,但问题是如果输入为随机性,要找到这个随机数将要消耗无穷大的时间。 虽然从输出反向推导输入变得特别困难并耗费巨大的时间,但正向推导从输入到散列化结束仅仅需要极短的时间,我们就可以通过一个散列函数,不到一秒的时间就能把任何大小容量的输入散列出一个固定长度的输出。 抗碰撞是加密散列函数属性之一,也就是说两个不同的输入通过散列函数处理之后不可能有相同的输出。 区块链和散列区块链的多个技术细节都用到了散列:区块链地址、交易散列、块散列、工作量证明、数据压缩、默克尔树等。
总结散列用于安全地标识和鉴定数据。安全的加密散列函数必须具备不可逆推导、快速正向推导和抗碰撞特性。256 比特已经超越宇宙中的原子数,结合固定长度输出的特性,散列可以作为任何数据的唯一标识。散列可以使用 64 个字符表示(16进制),这足以用来作为数据的标示符,散列在区块链中用来标识块、交易和地址。所以,这样的特性可以解决电子数据领域的版权验证问题。 ——THE END——
动动手指把这篇内容转发给需要学习或掉队的One成员,感谢!
声明:内容来源于互联网,绝不代表本站赞同其观点或证实其描述,内容仅供参考!
惊爆消息:One生态会员正在上公链,各个版块即将上线,全球线上线下会议火爆!为解决会员难处,本站组织个小团队,专门帮大家做KYC翻译、解决账号不能登录的各种问题、有需要现金欧元、储备欧元的,另朋友有最低价币子需出售,想多囤点币的,都可联系我们,可以加微信qyt36936(手机:13140131944)随时免费咨询。
越消费越富有:小编给您推荐自己参与8年的稳定平台: 使用【优乐兑】去淘宝、拼多多、京东和全国N家实体店消费送积分,积分兑换到比特币结算中心【共瑞城】变成比特币或金币(金币也是比特币,只涨不跌),实现双重升值;0风险、0投资、可推广,会员和商家免费入驻:点击注册:【优乐兑】;注册后点击:下载优乐兑APP;注册后加V信qyt36936,加时回复121拉你进学习群,不回复加也不通过;不懂查看操作教程:优乐兑如何使用。 |
本文来自:维卡币中文学习网,转载网址: