0
我正在使用標準節點crypto
庫來生成HMAC MD5哈希。節點加密HMAC返回<SlowBuffer>而不是字符串
當我嘗試讀取散列值時,返回的對象是<SlowBuffer>
而不是預期的String
。
下面是一個簡單的例子,但它給出了相同的結果:
var crypto = require('crypto');
var hmac = crypto.createHmac('md5', 'KEY');
hmac.write('something');
hmac.end();
var hash = hmac.read();
console.log(hash);
//Outputs: <SlowBuffer 4c ec c5 6e 46 90 23 7a f1 2e 5a 78 35 21 6a 7a>
是什麼原因造成的哈希類型強制轉換爲SlowBuffer
類型?我怎樣才能避免這種脅迫,或者至少從緩衝區讀取原始值?
如果我通過hmac.setEncoding()
設置散列的編碼值,它將<SlowBuffer 4c ec c5 6e 46 90 23 7a f1 2e 5a 78 35 21 6a 7a>
作爲給定格式的字符串進行簡單編碼。同樣如此,我嘗試在緩衝區本身上調用toString('encoding')
。
剛剛測試過,例如'console.log(hash.toString('base64'))'按預期工作。 –