Para se obter hashs tanto MD5 como SHA com Rails é muito fácil. Abaixo segue o que eu faço para calcular os Hashs:

def md5(str)
    return Digest::MD5.hexdigest(str)
end
 
def sha1(str)
    return Digest::SHA1.hexdigest(str)
end
 
def sha256(str)
    return Digest::SHA256.hexdigest(str)
end

Você pode ver no exemplo acima que coloquei três funções. Uma para MD5, outra para SHA1 e outra para SHA256. Mas existem outros ainda. Veja:

  1. Digest::SHA1.hexdigest() – Produz 40 caracteres de dígitos hexadecimais.
  2. Digest::SHA256.hexdigest() – Produz 64 caracteres de dígitos hexadecimais.
  3. Digest::SHA384.hexdigest() – Produz 96caracteres de dígitos hexadecimais.
  4. Digest::SHA512.hexdigest() – Produz 128 caracteres de dígitos hexadecimais.

Se quiser, você pode testar essas funções no console do Rils. Basta abrir o console:

ruby script/console

Digite o comando:

strHash = Digest::SHA1.hexdigest("string")

A saída deverá ser:

=> "ecb252044b5ea0f679ee78ec1a12904739e2904d"

Fácil e simples.