我去下載Notepad ++和一些我需要注意的事情,該頁面提供了一些下載選項(安裝程序,zip包,7z包,簡約包,SHA-1二進制包摘要,源代碼)「SHA-1 digests for binary packages」的選擇讓我問了一些問題,據我所知,SHA-1生成一個哈希碼,爲什麼他們使用它?這在這種情況下真的是哈希碼的功能?一般來說,哪一種科學使用它?我真的是新概念爲什麼要在發佈應用程序中使用SHA-1
0
A
回答
0
當您從不受原始網站所有者控制的鏡像下載可執行文件時,哈希函數會發揮作用(我將解釋它爲什麼只對一分鐘鏡像非常有用)。假設某人用可感染某種形式的惡意軟件的版本替換可執行文件。你怎麼知道的?我的意思是Notepad ++是一個值得信賴的應用程序,所以你不會懷疑。你可以做的是下載應用程序並計算SHA-1。然後,您可以將其與網站上的相比較,以確保您下載的文件是他們所說的文件。現在我說「從鏡像」的原因是因爲,如果黑客入侵Notepad ++網站並更換了exe,一個聰明的黑客也會替換他們網站上列出的SHA-1,以便它與惡意軟件感染版本中的內容相匹配。由於大多數軟件包都可以從實際軟件作者控制之外的幾十個下載鏡像中獲得,所以散列(SHA-1,SHA-2,MD5或任何其他散列)是一個不錯的選擇「雙重檢查」以確保您下載的是原作者希望您下載的內容,即使它來自他/她無法控制的服務器。
1
這個想法是,您可以在下載它們後在本地計算文件的SHA-1哈希值,然後將其與發佈的摘要進行比較。
如果本地哈希與包的作者發佈的哈希不匹配,則出現錯誤:您的下載,分發包或哈希列表。無論如何,如果發生這種情況,您不應該相信您的下載。
相關問題
- 1. 如何在我發佈的keystore應用程序中修改「SHA1」
- 2. 我爲什麼要在我的應用程序中使用PDO?
- 3. 爲什麼在iOS應用程序開發中使用@property
- 4. 企業應用程序中的JavaMail:爲什麼要使用JNDI?
- 5. 爲什麼在使用JSF Web應用程序時需要beans.xml?
- 6. 使用Google地圖apis發佈Phonegap應用程序需要什麼密鑰?
- 7. 爲什麼要在TFS迭代樹中使用發佈
- 8. 爲什麼需要在WPF應用程序中調用PropertyChanged
- 9. 爲Windows開發應用程序:使用什麼開發平臺?
- 10. 爲什麼不是我的Shiny應用程序發佈
- 11. C#應用程序發佈後不工作,爲什麼?
- 12. 爲什麼我看不到我發佈的android應用程序?
- 13. Rails:爲什麼不使用默認的應用程序佈局?
- 14. 什麼時候應該在Android應用程序中使用片段?爲什麼要使用碎片?
- 15. 爲Windows Embedded 7 Compact開發應用程序需要什麼?
- 16. IBM Worklight - 爲什麼要在worklight.js中使用sql查詢以及在應用程序中使用什麼
- 17. 想要發佈第一個應用程序我需要知道什麼
- 18. 爲什麼我應該在Silverlight應用程序中使用MVVM?
- 19. 爲什麼窗口在iOS 6應用程序中自動釋放併發布?
- 20. ASP.NET MVC應用程序中的「發佈」是什麼?
- 21. 什麼使用JavaScript爲Android開發應用程序?
- 22. 爲什麼使用生產開發軌道應用程序
- 23. 爲什麼要使用WTForms,而不是用HTML發佈
- 24. 使用MSBuild發佈Azure應用程序
- 25. 使用MSBuild發佈ClickOnce應用程序
- 26. 使用webservice發佈Silverlight應用程序
- 27. 使用HockeyApp發佈應用程序
- 28. 使用Visual Studio發佈應用程序
- 29. 使用iCloud發佈應用程序
- 30. 什麼是您的商業應用程序的發佈過程?