为什么在应用程序发布中使用 SHA-1
Why to use SHA-1 in the publication of applications
我去下载了 Notepad++ 并引起了我的注意,该页面提供了一些下载选项(安装程序、zip 包、7z 包、极简包、二进制包的 SHA-1 摘要、源代码)"SHA-1 digests for binary packages" 选择让我问了一些问题,据我所知,SHA-1 生成一个哈希码,那么他们为什么要使用它?在这种情况下,哈希码的真正功能是什么?一般情况下,哪些是科学使用呢?我对这个概念真的很陌生
想法是您可以在下载文件后在本地计算文件的 SHA-1 哈希,然后将其与发布的摘要进行比较。
如果本地散列与包作者发布的散列不对应,则说明有问题:您的下载、分发的包或散列列表。无论哪种方式,如果发生这种情况,您都不应该信任您的下载。
当您从不受原始网站所有者控制的镜像下载可执行文件时,哈希开始发挥作用(稍后我将解释为什么它只对镜像有用)。假设有人用感染了某种形式的恶意软件的版本替换了可执行文件。你怎么知道的?我的意思是 Notepad++ 是一个值得信赖的应用程序,因此您不太可能持怀疑态度。您可以做的是下载应用程序并计算 SHA-1。然后,您可以将其与网站上的文件进行比较,以确保您下载的文件与他们所说的一致。现在我说 "from a mirror" 的原因是,如果黑客入侵了 Notepad++ 网站并替换了 exe,聪明的黑客也会替换他们网站上列出的 SHA-1,以便它与恶意软件感染版本中的内容相匹配。
由于今天的大多数软件包都可以从许多不受实际软件作者控制的下载镜像中获得,因此哈希值(无论是 SHA-1、SHA-2、MD5 还是任何其他哈希值)都是很好 "double check" 确保您下载的是原作者希望您下载的内容,即使它来自 he/she 不受控制的服务器。
我去下载了 Notepad++ 并引起了我的注意,该页面提供了一些下载选项(安装程序、zip 包、7z 包、极简包、二进制包的 SHA-1 摘要、源代码)"SHA-1 digests for binary packages" 选择让我问了一些问题,据我所知,SHA-1 生成一个哈希码,那么他们为什么要使用它?在这种情况下,哈希码的真正功能是什么?一般情况下,哪些是科学使用呢?我对这个概念真的很陌生
想法是您可以在下载文件后在本地计算文件的 SHA-1 哈希,然后将其与发布的摘要进行比较。
如果本地散列与包作者发布的散列不对应,则说明有问题:您的下载、分发的包或散列列表。无论哪种方式,如果发生这种情况,您都不应该信任您的下载。
当您从不受原始网站所有者控制的镜像下载可执行文件时,哈希开始发挥作用(稍后我将解释为什么它只对镜像有用)。假设有人用感染了某种形式的恶意软件的版本替换了可执行文件。你怎么知道的?我的意思是 Notepad++ 是一个值得信赖的应用程序,因此您不太可能持怀疑态度。您可以做的是下载应用程序并计算 SHA-1。然后,您可以将其与网站上的文件进行比较,以确保您下载的文件与他们所说的一致。现在我说 "from a mirror" 的原因是,如果黑客入侵了 Notepad++ 网站并替换了 exe,聪明的黑客也会替换他们网站上列出的 SHA-1,以便它与恶意软件感染版本中的内容相匹配。
由于今天的大多数软件包都可以从许多不受实际软件作者控制的下载镜像中获得,因此哈希值(无论是 SHA-1、SHA-2、MD5 还是任何其他哈希值)都是很好 "double check" 确保您下载的是原作者希望您下载的内容,即使它来自 he/she 不受控制的服务器。