2013-03-13 20 views
5

Sto eseguendo il porting di uno script php sul nodo e non so molto sulla crittografia.Converti PHP hash_hmac (sha512) in NodeJS

Lo script php utilizza questa funzione:

hash_hmac('sha512', text, key); 

Così, ho bisogno di implementare una funzione di nodo js per la restituzione di un hash con chiave utilizzando il metodo HMAC (SHA512).

Da quello che posso vedere, il nodo ha questa funzionalità integrata tramite il modulo di crittografia (http://nodejs.org/docs/latest/api/crypto.html#crypto_crypto) - Ma non sono chiaro come riprodurre questa funzione.

Qualsiasi aiuto sarebbe apprezzato.

Grazie,

risposta

8

Sì, utilizzare la libreria crittografica.

var hash = crypto.createHmac('sha512', key); 
hash.update(text); 
var hashed_data = hash.digest(); 

Maggiori dettagli (ad es argomenti per digerire per controllare la codifica uscita dal hash.digest) sono a the link fornito.

Come Nick fa notare, è necessario fare questo intero processo ogni volta che si desidera crittografare una nuova stringa (vale a dire creare un nuovo hash oggetto attraverso crypto.createHmac.)

+2

Tip quando si utilizza questo, penso che si può solo chiama il metodo digest() su un hash una volta. Ciò significa che non è possibile utilizzare update(), seguito da digest() per formare un altro hash. Se è necessario creare più hash, sarà necessario utilizzare crypto.createHmac() più volte. –

+0

Sì, questo è corretto per quanto ne so. Grazie, aggiornerò la mia risposta. –