Posted on 2007-02-10 12:53
laogao 閱讀(2633)
評(píng)論(0) 編輯 收藏 所屬分類:
Other Languages
很多開(kāi)源框架的官方下載都會(huì)提供MD5的驗(yàn)證碼,用于驗(yàn)證下載的完整性,確保用戶下載的版本和發(fā)布者期望的版本是一致的,防止有人惡意篡改,尤其是存在很多鏡像站點(diǎn)的時(shí)候。使用Unix系統(tǒng)的朋友可以通過(guò)命令行直接md5 + 文件名,或者md5sum + 文件名取得本地文件的md5驗(yàn)證碼。使用Windows的朋友也能在網(wǎng)上找到不止一個(gè)提供MD5的工具。
不過(guò)既然Ruby在Unix/Windows/Mac上都能跑,那Ruby有沒(méi)有提供MD5的功能讓我們可以以一致的方式取得MD5 checksum呢?答案是有。
-
- require 'digest/md5'
- ARGV.each do |f|
- checksum = Digest::MD5.hexdigest(File.read(f))
- puts "#{f}:\t#{checksum}"
- end
比如我們到
http://struts.apahce.org/下載1.2.9版本Struts的源碼,下載到本地后,可以用上面的腳本獲取相應(yīng)的MD5碼,輸出為:
struts-1.2.9-src.tar.gz 63ff6e570410876412f8fd97749b2415
拿后面這個(gè)63ff6e570410876412f8fd97749b2415和官方網(wǎng)站上相應(yīng)的MD5 checksum作比對(duì)看是否一致,即可認(rèn)定下載到本地的版本是否完整。