# Validazione hmac

**URL:** <https://www.ruby-forum.com/t/validazione-hmac/171886>\
**Category:** IT\
**Created:** [July 10, 2009, 8:06pm UTC](https://www.ruby-forum.com/t/validazione-hmac/171886 "2009-07-10T20:06:34Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![pierpaolo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/f19dbf/32.png) [@pierpaolo](https://www.ruby-forum.com/u/pierpaolo)\
**Post date:** [July 10, 2009, 8:06pm UTC](https://www.ruby-forum.com/t/validazione-hmac/171886/1 "2009-07-10T20:06:34Z")

</div>

Ciao a tutti,  
sto provando  
questo[https://labs.ericsson.com/apis/sms-send-and-receive/documentation](https://labs.ericsson.com/apis/sms-send-and-receive/documentation)servizio  
della ericsson che permette di ricevere e inviare sms. Ricevo  
correttamente i dati tramite una callback url in questo formato

?from=[MSISDN]&time=[TIMESTAMP]&message=[MESSAGE]&hmac=[HMAC]

L’ultimo parametro, hmac, è un hmac sha1 codificato in base64, ottenuto da  
una chiave (la mia chiave personale per accedere al servizio) e da una  
stringa ottenuta concatenando gli altri 3 parametri (from, time,  
message).  
Per verificare l’autenticità del messaggio dunque dovrei ricalcolare  
l’hmac  
e confrontarlo con quello che mi è stato inviato. Ho provato con questo  
metodo:

def verify(key = “SECRET”)  
digest = OpenSSL::Digest::Digest.new(‘sha1’)  
data = @from + @time + @message  
Base64.encode64(OpenSSL::HMAC.digest(digest, key, data)) == @hmac  
end

ma, come avrete già capito, non riesco a far coincidere il codice da me  
calcolato con quuello che mi è stato inviato. Avete dei suggerimenti da  
darmi? Magari sto sbagliando tutto.

Grazie

---

<div class="post-metadata">

**Author:** ![pierpaolo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/f19dbf/32.png) [@pierpaolo](https://www.ruby-forum.com/u/pierpaolo)\
**Post date:** [July 11, 2009, 11:12am UTC](https://www.ruby-forum.com/t/validazione-hmac/171886/2 "2009-07-11T11:12:35Z")

</div>

Il tuo codice mi sembra corretto… però se vuoi ho trovato (partendo  
dall’articolo della wikipedia  
sull’hmac) un link ad una libreria ruby che sembra proprio fatta apposta  
😃

[http://ruby-hmac.rubyforge.org/](http://ruby-hmac.rubyforge.org/)

ps: ma… l’invio e la ricezione degli sms sono gratuiti ?

Sandro

2009/7/10 Pierpaolo S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![pierpaolo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/f19dbf/32.png) [@pierpaolo](https://www.ruby-forum.com/u/pierpaolo)\
**Post date:** [July 11, 2009, 12:32pm UTC](https://www.ruby-forum.com/t/validazione-hmac/171886/3 "2009-07-11T12:32:37Z")

</div>

ruby-hmac l’avevo già provata, ma produce lo stesso codice.  
Per quanto riguarda il servizio, la ricezione è gratuita mentre per  
l’invio  
hai 1000 sms gratis, che comunque sono molti.

Il giorno 11 Luglio 2009 11.11, Sandro P.  
\<[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> ha scritto:
