什麼是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校驗和

查看什麼是校驗和? 對於一些其他免費工具,可以找到計算機上實際文件的校驗和,而不僅僅是一串文本。