2009-08-31 8 views
7

Utilizzo di Google + Bing non ha prodotto una risposta a quella che dovrebbe essere una semplice domanda:Come creare un hash MD5 con il modulo HMAC in Ruby?

Come si suppone di utilizzare il modulo HMAC in Ruby per creare un HMAC con MD5 (che utilizza un segreto)?

I documenti HMAC sembrano terribilmente magri.

Grazie!

risposta

7

Il seguente gemma deve essere installato: '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" 
>> 
+0

grazie. per includere un segreto, è giusto fare quanto segue? HMAC :: MD5.new (SECRET + "abc"). Digest – Crashalot

+0

Probabilmente vuoi solo HMAC :: MD5.new (SECRET) .digest – DigitalRoss

1

Probabilmente si vuole solo HMAC :: MD5.new (segreto) .digest

Ricerca "salatura" prima un hash. Dipende dal tuo utilizzo, ma l'aggiunta di una stringa fissa aiuta a rendere gli hash diversi dagli hash di altre app. Quindi, un attacco dizionario è più difficile. Ma questo è solo in generale.

14

Questo dovrebbe essere il modo più semplice:

OpenSSL::HMAC.digest(OpenSSL::Digest::Digest.new('md5'), secret_key, your_data) 
4

Questo è quello che ho fatto:

HMAC::MD5.new(shared_key).update(data).hexdigest