162
votes

SHA Hash functions

4
SHA-1 is has been shown to be insecure. Consider using safer alternatives, such as SHA-256, or SHA-3. shattered.ioJonas Elfström

4 Answers

391
votes
require 'digest/sha1'
Digest::SHA1.hexdigest 'foo'
8
votes

For a Base64 encoded hash, to validated an Oauth signature, I used

require 'base64'
require 'hmac-sha1'

Base64.encode64((HMAC::SHA1.new('key') << 'base').digest).strip
7
votes

I created a helper gem which is a simple wrapper around some sha1 code

require 'rickshaw'
> Rickshaw::SHA1.hash('LICENSE.txt')

 => "4659d94e7082a65ca39e7b6725094f08a413250a" 

> "hello world".to_sha1

 => "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed" 
-25
votes

Where 'serialize' is some user function defined elsewhere.

 def generateKey(data)
    return Digest::SHA1.hexdigest ("#{serialize(data)}")
 end