作者:wagslane
译者:火火酱
出品:区块链大本营
本文对哈希函数进行简要的介绍,旨在帮助读者理解为什么要使用哈希函数,以及其基本工作原理。文中将省略具体证明和实现细节,而将重点放在高级原理上。
为什么要使用哈希函数
哈希函数被广泛应用于互联网的各个方面,主要用于安全存储密码、查找备份记录、快速存储和检索数据等等。例如,Qvault使用哈希散列将主密码扩展为私人加密密钥。
用途列表清单详见:?https://en.wikipedia.or/wiki/Hash_function#Uses
本文将重点介绍哈希函数的几个重要特性,也可以说是其最重要的特性:
哈希函数确定性地加扰数据;
无论输入是什么,哈希函数的输出大小始终相同;
无法从加扰的数据中检索原始数据;
CashApp创建者刺杀案嫌疑人被捕,系与Bob Lee相识的科技企业家:4月14日消息,经旧金山地区检察官Brooke Jenkins证实,刺杀Cash App创建者Bob Lee的嫌疑人,科技企业家Nima Momeni已被捕。官方回应称,Nima Momeni认识BobLee,但不愿就作案动机置评。Nima Momeni将于周五被提审,检察官表示提出一项动议,要求其不得被保释。(CNBC)[2023/4/14 14:03:09]
确定性地加扰数据
首先,想象一个魔方。
我们从恢复魔方开始。如果我们随机转动魔方,到最后,魔方将会呈现和开始时完全不同的状态。同样,如果我们重新开始,重复完全相同的动作,那么我们会不断得到完全相同的结果。尽管看起来结果可能是随机产生的,但实质上并非如此。这就是“确定性”的意思。
“确定性”在安全存储密码方面起着至关重要的作用。例如,假设我的密码是“iLoveBitcoin”。
我可以使用哈希函数对其进行加扰:
CoinShares调查:加密货币基金经理正在增加对ADA、DOT和XRP的押注:6月4日消息,根据CoinShares的数字资产双月基金经理调查结果,管理着大约2000亿美元资产的大型投资者正在远离ETH,转而押注其他三种山寨币:ADA、DOT和XRP。
调查发现,自3月份以来,投资者一直在稳步远离以太坊,同时将资金配置到这三种加密货币,这似乎将成为短期内的潜在看涨催化剂。
该报告进一步发现,随着投资者“越来越多地投资山寨币”,比特币头寸“几乎没有变化”。它发现,配置到以太坊的投资者比例略高于20%,低于3月份前一次调查的25%左右。
另一方面,据The Daily Hodl报道,投资者将资金配置到ADA的比例从5%上升至12%,增加了一倍多,配置到XRP的比例从4%上升至6%。同样,押注DOT的投资者比例从9%上升到13%左右。(Crypto Globe)[2022/6/4 4:02:02]
iLoveBitcoin→“2f5sfsdfs5s1fsfsdf98ss4f84sfs6d5fs2d1fdf15”
现在,如果有人看到这个加扰后的版本,他们也不会知道我的原始密码!这一点非常重要,因为这意味着,作为一名网站开发人员,我只需存储用户密码的哈希散列(加扰数据),即可对其进行验证。
当用户进行注册时,我对密码进行哈希散列处理,并将其存储在数据库中。当用户登录时,我只需再次对输入的内容进行哈希散列处理,并比较两个哈希值。由于特定的输入始终会输出相同的哈希值,所以该方法每次都可以成功验证密码。
门罗币和达世币被ShapeShift平台下架:11月7日消息,ShapeShift已从其平台上取消了门罗币的交易列表,它还将除名达世币,后者是具有可选匿名功能的比特币现金竞争对手。(Decrypt)[2020/11/7 11:54:41]
如果网站以纯文本格式存储密码的话,则会出现巨大的安全漏洞。如果有人入侵该网站,那么他将会能获取所有的电子邮件和密码,并可以尝试在其他网站上使用这些信息进行登录。
无论输入是什么,输出大小始终相同
如果对单个单词进行哈希,则输出将是特定的大小(对于特定的哈希函数SHA-256来说,其大小是256bits)。如果对一本书进行哈希,其输出也将是相同的大小。
这是其另一个重要特性,因为这可以节省我们的计算时间。典型的例子是在数据映射中使用哈希散列作为键。数据映射是计算机科学中用来存储数据的简单结构。
声音 | CoinShares董事长:公司计划进一步代币化其他硬资产:数字资产管理公司CoinShares董事长Danny Masters在接受采访时谈到了其锚定黄金的代币DGLD。Masters强调,试图创建黄金支持资产的早期产品在黄金社区中没有必要的凭证或信誉,他们都是自我托管或者使用第三方代理人托管黄金。而CoinShares与MKS的合作增强了该产品的完整性,因为许多瑞士银行、亿万富翁和银行都把自己的黄金储备交于给了MKS和PAMP进行托管。
在采访中,Masters还被问及CoinShares是否也计划将其他大宗商品代币化。对此他回应道,公司最先选择黄金是因为它特别“适合数字化”,而且出现在很多常规司法管辖区。此外,Masters表示,公司计划进一步代币化硬资产,如银、铂和钯,然后再针对其他低值金属。(AMBCrypto)[2019/11/23]
当程序在映射中存储数据时,会向映射提供键和值。当程序想要访问该值时,它可以向映射提供适当的键并接收相应的值。数据映射的优势在于它们可以立即找到数据。该键被用作计算机能够立即找到的地址,这样一来,就不必花费数小时在数百万条记录中进行搜索了。
因为键就像地址一样,不能太大。如果想将书籍存储在数据映射中,则可以对书籍的内容进行哈希散列处理,并使用哈希值作为键。作为一名程序员,我可以轻而易举地使用哈希散列来查找该书的内容,而不必按标题、作者等对数千条记录进行排序。
动态 | ShapeShift宣布裁员三分之一:据coindesk报道,在周二发布的一篇博客文章中,ShapeShift首席执行官Erik Voorhees表示,该公司决定裁员37人,占其员工的三分之一。他将这一过程称为“深度和痛苦的裁员”,理由是一系列困难,包括严峻的市场环境。[2019/1/9]
其工作原理是怎样的呢?
这部分是本文的难点,我会尽量将其简化,省略实际的实现细节,重点介绍计算机在使用哈希散列处理数据时工作原理的基本概念。
下面让我们来看一下我为此专门编写的一个算法——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
标签:SHACOINCOIOINFrax Sharecoincheck是什么意思GamerCoinSuccor Coin
2020年5月,比特币第三次减半,也许我们都在见证历史。距比特币减半不到10天,是时候认真聊一下比特币减半的影响了。这是99%以上币圈人第一次近距离围观比特币减半.
1900/1/1 0:00:00比特币矿业公司VBitDC宣布在种子轮融资中筹集了110万美元,该轮融资由天使投资基金GoldenAge领投.
1900/1/1 0:00:004月20日消息,德国监管机构批准了新的“可逆ICO”,为这一有争议的融资机制带来了新的链上投资者保护。据悉,可逆ICO允许投资者逐步购买代币,并在任何时候取消他们的支持和资金.
1900/1/1 0:00:00作者:杨叶平来源:人民论坛区块链技术以特有的分布式账本技术、集体维护的技术机制、新型信任机制为其介入思想教育提供了可能.
1900/1/1 0:00:00荷兰中央银行周二发布了一份报告,称其“准备在央行数字货币的发展中发挥领导作用”。 荷兰央行行长:加密货币市场可能很快成为全球金融稳定的威胁:金色财经报道,Watcher.Guru发推称,荷兰央行.
1900/1/1 0:00:00对于一些用户来说,以太坊域名是非常有价值的,这一点已经在现实中有所体现。本周,RocketLPDAO发放了1000美元的贷款,抵押品就是以太坊域名服务地址“brantly.eth”.
1900/1/1 0:00:00