© 2023 Feiniao, Inc. All rights reserved.

如何用ruby快速验证下载文件的完整性 - 怎么用ruby快速验证下载文件的完整性?

Ruby OpenSSL
OpenSSL是一个开源软件库,提供了加密、解密和其他安全相关操作的功能。Digest是OpenSSL项目中的一个类,用于计算哈希值或摘要。摘要是一种用于保证数据完整性和安全性的技术,取决于数据内容的哈希结果。哈希是将任意长度的数据“压缩”为固定长度的数据的过程,而哈希值则是哈希算法运行后输出的结果。
我们在网上下载一些文件的时侯,经常会看到文件旁边会有一个SHA256或者SHA512的一串很长的字符串。这就是文件提供者给原始文件进行数据“压缩”产生的唯一哈希值。如果原始文件发生了改变,那么相应的哈希值也会发生改变。这就非常有效的方便大家判断对权威网站上下载的文件是否有植入恶意代码。

首先打开终端“iTerm”,cd到你下载文件的目录,输入irb进入ruby的交互式命令行界面,然后加载OpenSSL模块,输入require “openssl”,如果加载成功,你会得到一个结果:=> true,否则你需要根据提示安装好openssl模块之后再操作。

接下来只需要输入两行(你可以调整成一行)命令即可得到下载文件的哈希值,例如,

sha256 = Digest::SHA256.file "you_file_full_name"
sha256.hexdigest

如果文件提供者提供的是sha512哈希值,那么你只需要将Digest::SHA256改成Digest::SHA512即可。