SHA-1(简称 安全哈希算法1 )是几种加密哈希函数之一。
SHA-1通常用于验证文件是否未被更改。这是通过在文件传输之前产生校验和,然后在到达目的地之后再次产生。
只有在传输的文件才被认为是真实的 两个校验和是相同的.
SHA Hash函数的历史和漏洞
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的攻击不太可能以当前的计算能力发生。
不仅联邦机构,甚至谷歌,Mozilla和微软等公司都开始计划停止接受SHA-1 SSL证书,或者已经阻止这些类型的页面加载。
谷歌有一个SHA-1冲突证明,无论是关于密码,文件还是任何其他数据,这种方法都会导致这种方法不可靠,无法生成唯一的校验和。您可以从SHAttered下载两个独特的PDF文件,看看它是如何工作的。使用本页底部的SHA-1计算器为两者生成校验和,即使它们包含不同的数据,您也会发现该值完全相同。
SHA-2和SHA-3
SHA-2于2001年出版,比SHA-1发布数年。 SHA-2包括六个具有不同摘要大小的哈希函数: SHA-224 , SHA-256 , SHA-384 , SHA-512 , SHA-二百二十四分之五百一十二 ,和 SHA-二百五十六分之五百一十二 .
由非NSA设计人员开发并于2015年由NIST发布,是Secure Hash Algorithm系列的另一个成员,称为SHA-3(以前称为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或其他程序或更新,您可能还需要检查这两个文件是否相同,因为如果在安装过程中缺少某些文件,则会出现问题。
SHA-1校验和计算器
可以使用一种特殊的计算器来确定文件或字符组的校验和。
例如,SHA1 Online和SHA1 Hash是免费的在线工具,可以生成任何文本,符号和/或数字组的SHA-1校验和。
例如,这些网站将生成SHA-1校验和 bd17dabf6fdd24dab5ed0e2e6624d312e4ebeaba 对于文本 PASSW0RD! .