domingo, 16 de junho de 2013

Ruby: Verificando MD5 de arquivos

Postado por DoctorRu (Will)


Um pequeno  script que escrevi para verificar o MD5 de arquivos.

A primeira linha indica onde está o executável do ruby no seu sistema, se estiver usando windows mudar para o path usado, ex: c:\ruby\bin

Utilizei a biblioteca MD5 para calcular o hash do arquivo e depois realizar a comparação.

Para utilizar esse script ou você torna esse arquivo executável com: chmod +x md5check.rb e depois o executa com: ./md5check.rb <arquivo a ser verificado> <MD5 fornecido> ou chame-o da maneira tradicional com: ruby  md5check.rb <arquivo a ser verificado> <MD5 fornecido> o código é auto explicativo, mas qualquer dúvida é só deixar um comentário.

#!/usr/bin/env ruby
# encoding:UTF-8
#
# MD5 Simple checker
# by DoctorRu | http://rubydoit.blogspot.com | 2013-06-16
# 
# Usage: ruby md5check.rb <file name> <provided MD5> 
# or change the mode of this file to +x 
# and: ./md5check.rb <file name> <provided MD5>

require 'digest'

if ARGV[0] == nil || ARGV[0] == "--help" || ARGV[0] == "-h" 
  puts "Usage: md5check <file> <provided MD5>" 
else
  if File.exists?(ARGV[0])
    File_name  = ARGV[0]
    Md5_source = ARGV[1] || "nil : try md5check -h"
    Md5_sum = Digest::MD5.hexdigest(File.read(File_name))   
    puts "File\t=> #{Md5_sum}\nSource\t=> #{Md5_source}"
    puts "Compare\t=> #{Md5_sum == Md5_source ? 'MD5 passed!' : 'MD5 failed'}"
  else   
    puts "File not found"
  end
end
Exemplo de uso:
$ ./md5check.rb opera_12.15.1748_amd64.deb a7e6125c04d99562de643e6caf1781b9
File    => a7e6125c04d99562de643e6caf1781b9
Source  => a7e6125c04d99562de643e6caf1781b9
Compare => MD5 passed!

0 comentários :

Postar um comentário