使用 Ruby 时大型二进制文件的 SHA256 值
SHA256 value for large binaries when using Ruby
我想要一些大型二进制文件的 SHA256 值。这可能使用 Ruby 吗? Digest::SHA2
似乎不能像预期的那样使用字符串而不是文件。
文件在磁盘上吗? - 我只会使用另一个实用程序调用 shell 并完全避免将其读入 Ruby 运行时内存,例如使用 Open3
+ sha256sum
文件是否通过 IO(如网络)传输? - 使用 streaming read on the IO object and compute the SHA in chunks
例如像这样:
sha = Digest::SHA2.new
File.open(file_path) do |f|
while chunk = f.read(256) # only load 256 bytes at a time
sha << chunk
end
end
sha.hexdigest # returns what you want
我想要一些大型二进制文件的 SHA256 值。这可能使用 Ruby 吗? Digest::SHA2
似乎不能像预期的那样使用字符串而不是文件。
文件在磁盘上吗? - 我只会使用另一个实用程序调用 shell 并完全避免将其读入 Ruby 运行时内存,例如使用 Open3
+ sha256sum
文件是否通过 IO(如网络)传输? - 使用 streaming read on the IO object and compute the SHA in chunks
例如像这样:
sha = Digest::SHA2.new
File.open(file_path) do |f|
while chunk = f.read(256) # only load 256 bytes at a time
sha << chunk
end
end
sha.hexdigest # returns what you want