Reputation: 34523
Using Google + Bing didn't yield an answer to what should be a simple question:
How are you supposed to use the HMAC module in Ruby to create a HMAC with MD5 (that uses a secret)?
The HMAC docs seem awfully thin.
Thanks!
Upvotes: 7
Views: 6527
Reputation: 3281
In 2020 this is how I did it:
OpenSSL::HMAC.hexdigest("MD5", secret_key, your_data)
Ruby documentation is available here: OpenSSL::HMAC
Upvotes: 4
Reputation: 146211
The following gem should be installed: 'ruby-hmac'
$ irb
>> require 'hmac-md5'
=> true
>> HMAC::MD5.new("abc").digest
=> "\324\035\214\331\217\000\262\004\351\200\t\230\354\370B~"
>> HMAC::MD5.new("abc").hexdigest
=> "d41d8cd98f00b204e9800998ecf8427e"
>>
Upvotes: 7
Reputation: 11
Probably you just want HMAC::MD5.new(SECRET).digest
Lookup "salting" a hash first. It depends on your usage, but adding a fixed string does help by making your hashes different than the hashes from other apps. Thus, a dictionary attack is harder. But that's just generally speaking.
Upvotes: 1
Reputation: 448
This is what I did:
HMAC::MD5.new(shared_key).update(data).hexdigest
Upvotes: 4
Reputation: 960
This should be the easiest way:
OpenSSL::HMAC.digest(OpenSSL::Digest::Digest.new('md5'), secret_key, your_data)
Upvotes: 14
Reputation: 1888
http://betterlogic.com/roger/?p=152
no?
Or I remember toying with it inside one of our Gems so maybe you can reverse engineer from it?
http://github.com/appoxy/aws/tree/master
Hope this helps.
Chad
Upvotes: -1