作者:wagslane
译者:火火酱
出品:区块链大本营
本文对哈希函数进行简要的介绍,旨在帮助读者理解为什么要使用哈希函数,以及其基本工作原理。文中将省略具体证明和实现细节,而将重点放在高级原理上。
为什么要使用哈希函数
哈希函数被广泛应用于互联网的各个方面,主要用于安全存储密码、查找备份记录、快速存储和检索数据等等。例如,Qvault使用哈希散列将主密码扩展为私人加密密钥。
用途列表清单详见:?https://en.wikipedia.or/wiki/Hash_function#Uses
本文将重点介绍哈希函数的几个重要特性,也可以说是其最重要的特性:
哈希函数确定性地加扰数据;
无论输入是什么,哈希函数的输出大小始终相同;
无法从加扰的数据中检索原始数据;
CoinShares采用LedgerLens提供ETP的资产实时证明:金色财经报道,CoinShares 将采用独立会计师事务所 The Network Firm 提供的解决方案 LedgerLens 为旗下交易所交易产品(ETP)提供资产实时证明服务,使得投资者能够实时访问 ETP 背后的数字资产情况。
此前报道,会计师事务所 Armanino 前数字资产业务成员成立新公司 The Network Firm,该公司从事为加密货币公司客户提供审计、鉴证和相关工作的业务。Armanino 过去的加密货币客户包括稳定币项目 TrueUSD、加密货币交易所 Kraken、数字资产借贷平台 Nexo 和投资公司 CoinShares。[2023/4/24 14:23:41]
确定性地加扰数据
首先,想象一个魔方。
我们从恢复魔方开始。如果我们随机转动魔方,到最后,魔方将会呈现和开始时完全不同的状态。同样,如果我们重新开始,重复完全相同的动作,那么我们会不断得到完全相同的结果。尽管看起来结果可能是随机产生的,但实质上并非如此。这就是“确定性”的意思。
CoinShares在德国Xetra推出两个零管理费指数ETP:金色财经报道,CoinShares今天宣布在德国主要市场Xetra推出两个实物支持的指数ETP:CoinShares Physical Top 10 Crypto Market ETP(代码:CTEN)和CoinShares Physical Smart Contract Platform ETP(代码:CSSC),管理费为零。这两款产品都追踪与Compass Financial Technologies合作开发的定制指数。
据悉,CoinShares是欧洲最大的数字资产投资公司,资产管理规模为22亿美元。(Globe Newswire)[2023/3/27 13:28:46]
“确定性”在安全存储密码方面起着至关重要的作用。例如,假设我的密码是“iLoveBitcoin”。
我可以使用哈希函数对其进行加扰:
iLoveBitcoin→“2f5sfsdfs5s1fsfsdf98ss4f84sfs6d5fs2d1fdf15”
现在,如果有人看到这个加扰后的版本,他们也不会知道我的原始密码!这一点非常重要,因为这意味着,作为一名网站开发人员,我只需存储用户密码的哈希散列(加扰数据),即可对其进行验证。
当用户进行注册时,我对密码进行哈希散列处理,并将其存储在数据库中。当用户登录时,我只需再次对输入的内容进行哈希散列处理,并比较两个哈希值。由于特定的输入始终会输出相同的哈希值,所以该方法每次都可以成功验证密码。
Genesis Shards即将向用户发放Gen Ticket NFT:据官方消息,基于波卡的去中心化生态系统Genesis Shards宣布即将向用户发放Gen Ticket NFT,用户可在OpenSea平台的以太坊钱包中查看NFT并进行交易。每张Gen Ticket包含了不同数量的GS代币,可以在IDO时进行兑换。[2021/4/14 20:16:58]
如果网站以纯文本格式存储密码的话,则会出现巨大的安全漏洞。如果有人入侵该网站,那么他将会能获取所有的电子邮件和密码,并可以尝试在其他网站上使用这些信息进行登录。
无论输入是什么,输出大小始终相同
如果对单个单词进行哈希,则输出将是特定的大小(对于特定的哈希函数SHA-256来说,其大小是256bits)。如果对一本书进行哈希,其输出也将是相同的大小。
这是其另一个重要特性,因为这可以节省我们的计算时间。典型的例子是在数据映射中使用哈希散列作为键。数据映射是计算机科学中用来存储数据的简单结构。
对冲基金经理AlanHoward为已上市加密资产管理公司CoinShares第四大股东:加密资产管理公司CoinShares网站公开了重要持股人,其中由对冲基金经理AlanHoward持有的AH(StHelier)Limited是CoinShares的第四大股东,持有548万股股票(约6000万美元),占比8.24%。CoinShares于2013年推出,在泽西岛、斯德哥尔摩、伦敦和纽约设有办事处,提供了数字资产敞口并开展数字资产交易活动,今年3月11日在瑞典斯德哥尔摩上市。(The Block)[2021/3/19 19:02:08]
当程序在映射中存储数据时,会向映射提供键和值。当程序想要访问该值时,它可以向映射提供适当的键并接收相应的值。数据映射的优势在于它们可以立即找到数据。该键被用作计算机能够立即找到的地址,这样一来,就不必花费数小时在数百万条记录中进行搜索了。
因为键就像地址一样,不能太大。如果想将书籍存储在数据映射中,则可以对书籍的内容进行哈希散列处理,并使用哈希值作为键。作为一名程序员,我可以轻而易举地使用哈希散列来查找该书的内容,而不必按标题、作者等对数千条记录进行排序。
动态 | Cashaa为印度加密货币所有者推出银行解决方案:银行服务平台Cashaa正在为面临印度中央银行印度储备银行(RBI)施加银行限制的印度加密货币所有者提供解决方案。这项服务允许用户每月存入多达1千万卢比(约合141,012美元)来购买加密货币。Cashaa周一宣布,它将在10月23日开始使用户能够使用INR购买加密货币。(Bitcoin)[2019/10/22]
其工作原理是怎样的呢?
这部分是本文的难点,我会尽量将其简化,省略实际的实现细节,重点介绍计算机在使用哈希散列处理数据时工作原理的基本概念。
下面让我们来看一下我为此专门编写的一个算法——LANEHASH:
我们从要进行哈希散列的数据开始
我把字母和数字转换成1和0(计算机中的所有数据都以1和0的形式进行存储,不同的1和0的组合代表了不同的字母)
此时,我们通过各种预设的步骤对数据进行转换。步骤内容可以是任意的,但重要的是,每次使用LANEHASH时,我们都需要遵循相同的步骤,以便我们的算法具有确定性。我们将前4位从左侧移到右侧:
每隔1位进行间隔:
我们把这两部分转换为以十进制的数字。十进制是我们在学校中学过的“正常的”数字系统。(所有的二进制数据实际上都是数字,你可以在其他网站上在线查询如何将二进制转换为十进制数字)
我们将这两个数字相乘:
然后对该数进行平方:
再将该数字转换回二进制:
从右侧切掉9bits后正好得到16bits:
然后将该二进制数据转换回英语:
如上所示,如果输入相同,那么最后终将会得到相同的输出结果。但是,如果改变任何一个字母,最终的结果也将发生巨大变化。
免责声明:
在我将英语转换成二进制,并将二进制转换成英语的步骤中,并没有遵循任何模式。有许多不同的方法可以将二进制数据转换成英语并转换回去,我只是不想在本文中展开讨论这个问题。感兴趣的话,你可以通过以下链接进行了解:
https://en.wikipedia.org/wiki/ASCII
https://en.wikipedia.org/wiki/Unicode原文:https://hackernoon.com/a-very-basic-intro-to-hash-functions-sha-256-md-5-etc-21wp24jk
摘要:为了迎合各国监管,Libra2.0做出了几个重要妥协。其中,不打算转公有链,对以太坊等公链来说是一个利好。 今日14时,8BTCCI大盘指数报10387.53点,24小时涨跌为+7.74%,反映大盘快速上行.
1900/1/1 0:00:00USDT在最近几个月发行量激增,截止到2020年4月16日截稿时,当前的USDT总量超过69亿美元,而在一年前才20多亿美元,大约一年的时间增长了3倍多.
1900/1/1 0:00:00距4月14日央行数字货币内测的消息已经过去一段时间你真的知道DCEP是什么了吗?作为未来将替代现金的货币 恐怕你必须去了解一下它 5个问题.
1900/1/1 0:00:00本报告由火币区块链研究院出品,报告发布时间2020年4月27日,作者:袁煜明、卢军 摘要: 北京时间4月16日晚,Facebook发布了Libra第二版白皮书,相比Libra初版修正了不符合全球主要金融监管机构意志的内容.
1900/1/1 0:00:00文|互链脉搏·元尚 4月16日,具有百年历史的招商局集团旗下核心企业招商港口发布了2019年财报,财报“三提”区块链业务,并且将这一技术置于公司战略非常重要的角色,也是历年财报首提区块链.
1900/1/1 0:00:00微软的一项新专利申请详细介绍了一种利用身体机能来挖加密货币的方法。这项名为“使用身体活动数据的加密货币系统”的专利说明了“在用户处理信息服务供应商的任务时产生的脑电波或身体热量如何用于挖矿.
1900/1/1 0:00:00