什么是SHA-1?

SHA-1的定义及其如何验证数据

SHA-1( 安全散列算法1的缩写)是几种加密散列函数之一

SHA-1最常用于验证文件是否未更改 。 这是通过在文件传输之前生成一个校验和来完成的,然后一旦到达目的地就再次生成校验和

只有两个校验和相同时 ,传输的文件才可以被认为是真实的。

历史& SHA哈希函数的漏洞

SHA-1只是安全散列算法(SHA)系列中四种算法之一。 大多数是由美国国家安全局(NSA)开发并由国家标准与技术研究院(NIST)发布的。

SHA-0具有160位的消息摘要(散列值)大小,并且是该算法的第一个版本。 SHA-0散列值是40位数字。 它在1993年以“SHA”的名称发布,但在许多应用中并未使用,因为它在1995年因为安全漏洞很快被SHA-1取代。

SHA-1是此密码散列函数的第二次迭代。 SHA-1还具有160位的消息摘要,并通过修复SHA-0中发现的弱点来增加安全性。 但是,在2005年,SHA-1也被认为是不安全的。

一旦在SHA-1中发现了加密弱点,NIST在2006年发表声明,鼓励联邦机构在2010年之前采用SHA-2 .SHA-2比SHA-1更强大,针对SHA-2的攻击不太可能以当前的计算能力发生。

不仅联邦机构,甚至像Google,Mozilla和Microsoft这样的公司都开始计划停止接受SHA-1 SSL证书,或者已经阻止这些类型的页面加载。

谷歌有证据表明SHA-1冲突会导致这种方法不可靠,无法生成唯一的校验和,无论是关于密码,文件还是其他任何数据。 您可以从SHAttered下载两个独特的PDF文件,以了解其工作原理。 使用本页底部的SHA-1计算器为两者生成校验和,并且您会发现即使它们包含不同的数据,该值也完全相同。

SHA-2& SHA-3

SHA-2于2001年发布,在SHA-1之后几年发布。 SHA-2包括具有不同摘要大小的六个哈希函数: SHA-224SHA-256SHA-384SHA-512SHA-512/224SHA-512/256

由非NSA设计人员开发并于2015年由NIST发布,是安全散列算法系列的另一成员,称为SHA-3(以前称为Keccak )。

SHA-3并不是要取代SHA-2,就像以前的版本要取代之前的版本。 相反,SHA-3是作为SHA-0,SHA-1和MD5的另一种替代品而开发的。

如何使用SHA-1?

一个可以使用SHA-1的真实世界的例子是当你将密码输入到网站的登录页面时。 尽管它在不知情的情况下发生在后台,但它可能是网站用来安全验证您的密码是否真实的方法。

在这个例子中,假设你正在尝试登录你经常访问的网站。 每次您请求登录时,都需要输入您的用户名和密码。

如果网站使用SHA-1加密散列函数,则表示您输入密码后会将其转换为校验和。然后将该校验和与网站上存储的与您当前密码相关的校验和进行比较,无论您是否避难自从您注册以来,或者您刚刚改变了密码,就不会更改密码。 如果两者匹配,则您被授予访问权限; 如果他们不这样做,你会被告知密码不正确。

另一个可以使用SHA-1散列函数的例子是用于文件验证。 某些网站将在下载页面上提供该文件的SHA-1校验和,以便在下载文件时,可以自行检查校验和,以确保下载的文件与您打算下载的文件相同。

您可能想知道这种验证的真实用途。 考虑一个场景,您可以从开发人员的网站获知文件的SHA-1校验和,但是您想从其他网站下载相同的版本。 然后,您可以为您的下载生成SHA-1校验和,并将其与开发者下载页面中的真正校验和进行比较。

如果两者不同,那么这不仅意味着该文件的内容不完全相同,而且该文件中可能存在恶意软件 ,数据可能被损坏并导致计算机文件损坏,该文件与该文件不相关真实文件等

然而,它也可能意味着一个文件代表的是旧版本的程序,因为即使这样的变化很小也会产生唯一的校验和值。

如果您安装Service Pack或其他程序或更新,则可能还需要检查这两个文件是否相同,因为如果在安装期间某些文件丢失,则会发生问题。

有关此过程的简短教程,请参阅如何使用FCIV验证Windows中的文件完整性

SHA-1校验和计算器

可以使用一种特殊的计算器来确定文件或字符组的校验和。

例如,SHA1 Online和SHA1 Hash是免费的在线工具,可以生成任何一组文本,符号和/或数字的SHA-1校验和。

例如,这些网站将为文本pAssw0rd生成bd17dabf6fdd24dab5ed0e2e6624d312e4ebeaba的SHA-1校验和

查看什么是校验和? 对于一些其他免费工具,可以找到计算机上实际文件的校验和,而不仅仅是一串文本。