2013-03-13 51 views
5

我正在將php腳本移植到節點,並且我對加密知之甚少。將PHP hash_hmac(sha512)轉換爲NodeJS

PHP腳本使用此功能:

hash_hmac('sha512', text, key); 

所以,我需要實現節點JS的函數返回使用HMAC方法(SHA512)加密散列。

從我所看到的,節點有通過加密模塊(http://nodejs.org/docs/latest/api/crypto.html#crypto_crypto)內置此功能 - 但我不清楚如何重現此功能。

任何幫助,將不勝感激。

謝謝,

回答

8

是的,使用加密庫。

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

更多細節(例如參數消化,以控制從hash.digest輸出編碼)是在the link你提供。

尼克指出,你會使用這個時候需要你要加密一個新的字符串每次做這整個過程(即通過crypto.createHmac創建一個新hash對象。)

+2

提示,我想你可以只調用散列的digest()方法一次。這意味着你不能使用update(),接着使用digest()來形成另一個散列。如果你需要形成多個哈希,你將不得不多次使用crypto.createHmac()。 – 2013-03-13 19:56:43

+0

是的,就我所知,這是正確的。謝謝,我會更新我的答案。 – 2013-03-13 19:57:25