论坛首页 编程语言技术论坛

[Tips] 使用Ruby计算MD5 checksum

浏览 3756 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-02-10  

很多开源框架的官方下载都会提供MD5的验证码,用于验证下载的完整性,确保用户下载的版本和发布者期望的版本是一致的,防止有人恶意篡改,尤其是存在很多镜像站点的时候。使用Unix系统的朋友可以通过命令行直接md5 + 文件名,或者md5sum + 文件名取得本地文件的md5验证码。使用Windows的朋友也能在网上找到不止一个提供MD5的工具。

不过既然Ruby在Unix/Windows/Mac上都能跑,那Ruby有没有提供MD5的功能让我们可以以一致的方式取得MD5 checksum呢?答案是有。
ruby 代码
 
  1. #!/usr/bin/env ruby  
  2. require 'digest/md5'  
  3. ARGV.each do |f|  
  4.     checksum = Digest::MD5.hexdigest(File.read(f))  
  5.     puts "#{f}:\t#{checksum}"  
  6. end  

比如我们到http://struts.apahce.org/下载1.2.9版本Struts的源码,下载到本地后,可以用上面的脚本获取相应的MD5码,输出为:

struts-1.2.9-src.tar.gz   63ff6e570410876412f8fd97749b2415

拿后面这个63ff6e570410876412f8fd97749b2415和官方网站上相应的MD5 checksum作比对看是否一致,即可认定下载到本地的版本是否完整。

论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics