ANIA:SHA-256、MD-5,哈希散列函数这些原理你懂了吗?_BIT

编者按:本文来自区块链大本营,作者:wagslane,译者:火火酱,Odaily星球日报经授权转载。本文对哈希函数进行简要的介绍,旨在帮助读者理解为什么要使用哈希函数,以及其基本工作原理。文中将省略具体证明和实现细节,而将重点放在高级原理上。为什么要使用哈希函数

哈希函数被广泛应用于互联网的各个方面,主要用于安全存储密码、查找备份记录、快速存储和检索数据等等。例如,Qvault使用哈希散列将主密码扩展为私人加密密钥。用途列表清单详见:https://en.wikipedia.or/本文将重点介绍哈希函数的几个重要特性,也可以说是其最重要的特性:哈希函数确定性地加扰数据;无论输入是什么,哈希函数的输出大小始终相同;无法从加扰的数据中检索原始数据;确定性地加扰数据

首先,想象一个魔方。

币安:New Bitshares(NBS)代币余额兑换为USDT:金色财经报道,据官方公告,币安将根据用户在快照时间2023年09月09日08:00(东八区时间),币安钱包中NBS的持仓记录,将其持有的下架代币New Bitshares(NBS)余额兑换为等值USDT。

币安将在2023年12月09日07:59(东八区时间)前将用户的全部New Bitshares(NBS)余额兑换为等值USDT。并根据2023年09月09日08:00(东八区时间)至2023年12月09日07:59(东八区时间)期间(以下称为“兑换期”)NBS/USDT的平均汇率作为兑换汇率。所有受影响用户的New Bitshares(NBS)代币余额兑换为USDT完成之后,将另行公告。[2023/8/18 18:08:20]

以太坊客户端Prysm为Shapella升级发布V4.0.0版本:3月31日消息,以太坊客户端Prysm为Shapella升级发布V4.0.0版本。该版本对所有主网信标节点和验证器都是强制性的,必须于4月12日之前升级。[2023/3/31 13:37:34]

我们从恢复魔方开始。如果我们随机转动魔方,到最后,魔方将会呈现和开始时完全不同的状态。同样,如果我们重新开始,重复完全相同的动作,那么我们会不断得到完全相同的结果。尽管看起来结果可能是随机产生的,但实质上并非如此。这就是“确定性”的意思。“确定性”在安全存储密码方面起着至关重要的作用。例如,假设我的密码是“iLoveBitcoin”。我可以使用哈希函数对其进行加扰:iLoveBitcoin→“2f5sfsdfs5s1fsfsdf98ss4f84sfs6d5fs2d1fdf15”现在,如果有人看到这个加扰后的版本,他们也不会知道我的原始密码!这一点非常重要,因为这意味着,作为一名网站开发人员,我只需存储用户密码的哈希散列(加扰数据),即可对其进行验证。当用户进行注册时,我对密码进行哈希散列处理,并将其存储在数据库中。当用户登录时,我只需再次对输入的内容进行哈希散列处理,并比较两个哈希值。由于特定的输入始终会输出相同的哈希值,所以该方法每次都可以成功验证密码。如果网站以纯文本格式存储密码的话,则会出现巨大的安全漏洞。如果有人入侵该网站,那么他将会能获取所有的电子邮件和密码,并可以尝试在其他网站上使用这些信息进行登录。无论输入是什么,输出大小始终相同

Shapeshift CEO:加密货币总市值将在六个月内翻一番:加密货币交易平台Shapeshift首席执行官Erik Voorhees 预测,加密货币总市值将在六个月内翻一番。Voorhees 今日早些时候发推表示:“加密货币市值涨至1万亿美元花费了十年。到2万亿美元,将用不到六个月的时间。”

如果到Voorhees的预测成真时,比特币仍保持其70%左右的主导地位,这将使其市值达到约1.4万亿美元,从而使比特币能够进入最大资产的前5名。(Decrypt)[2021/1/7 16:40:21]

如果对单个单词进行哈希,则输出将是特定的大小(对于特定的哈希函数SHA-256来说,其大小是256bits)。如果对一本书进行哈希,其输出也将是相同的大小。这是其另一个重要特性,因为这可以节省我们的计算时间。典型的例子是在数据映射中使用哈希散列作为键。数据映射是计算机科学中用来存储数据的简单结构。

ETC:使用Keccak256或者SHA3算法将使ETC成为潜在的领导者:以太坊经典发推表示:使用Keccak256或者SHA3算法将使ETC处在一个独特的位置。就其自己挖矿算法的哈希率而言,将会成为潜在的领导者。[2020/9/7]

当程序在映射中存储数据时,会向映射提供键和值。当程序想要访问该值时,它可以向映射提供适当的键并接收相应的值。数据映射的优势在于它们可以立即找到数据。该键被用作计算机能够立即找到的地址,这样一来,就不必花费数小时在数百万条记录中进行搜索了。因为键就像地址一样,不能太大。如果想将书籍存储在数据映射中,则可以对书籍的内容进行哈希散列处理,并使用哈希值作为键。作为一名程序员,我可以轻而易举地使用哈希散列来查找该书的内容,而不必按标题、作者等对数千条记录进行排序。其工作原理是怎样的呢?

Coinshares首席策略官对高盛有关“比特币被用于”的批评提出异议:Coinshares首席策略官Meltem Demirors对高盛近期有关比特币被用于的批评提出异议。Demirors特意提及此前高盛承认涉及的丑闻并支付了有史以来最高的罚款之一的事实,与高盛指责比特币被用于的说法进行对此。2019年1月消息,马来西亚去年底就一马公司和贪腐案指控高盛,寻求高盛赔偿并要求判处两名高盛前银行家、两名一马公司前工作人员监禁。英国《金融时报》几天后援引林冠英的话报道,马方寻求高盛赔偿总额75亿美元,分别是65亿美元的债券发行款项和10亿美元债券发行费用。高盛集团总裁兼首席运营官苏德巍(英文名戴维·所罗门)在一份致马来西亚人的道歉声明中说,马来西亚人遭“许多人,包括(马来西亚)前任政府最高级别官员。(高盛前银行家)蒂姆·莱斯纳是其中之一。就莱斯纳所起的作用,我们向马来西亚人道歉”。莱斯纳已经在美国认罪,同意归还4.37亿美元非法所得。马来西亚财政部长林冠英说,美国高盛集团就牵扯马主权投资基金“一个马来西亚发展公司”和贪腐案,仅仅向马来西亚道歉不够,马方坚持向高盛索赔75亿美元。(Cointelegraph)[2020/5/29]

这部分是本文的难点,我会尽量将其简化,省略实际的实现细节,重点介绍计算机在使用哈希散列处理数据时工作原理的基本概念。下面让我们来看一下我为此专门编写的一个算法——LANEHASH:我们从要进行哈希散列的数据开始

我把字母和数字转换成1和0(计算机中的所有数据都以1和0的形式进行存储,不同的1和0的组合代表了不同的字母)

此时,我们通过各种预设的步骤对数据进行转换。步骤内容可以是任意的,但重要的是,每次使用LANEHASH时,我们都需要遵循相同的步骤,以便我们的算法具有确定性。我们将前4位从左侧移到右侧:

每隔1位进行间隔:

我们把这两部分转换为以十进制的数字。十进制是我们在学校中学过的“正常的”数字系统。(所有的二进制数据实际上都是数字,你可以在其他网站上在线查询如何将二进制转换为十进制数字)

我们将这两个数字相乘:

然后对该数进行平方:

再将该数字转换回二进制:

从右侧切掉9bits后正好得到16bits:

然后将该二进制数据转换回英语:

如上所示,如果输入相同,那么最后终将会得到相同的输出结果。但是,如果改变任何一个字母,最终的结果也将发生巨大变化。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

区块博客

[0:15ms0-4:590ms