2017-09-27 126 views
0

在PHP中,下面的代碼返回「字符串」的NodeJS SHA1得到原始輸出(PHP SHA1原始輸出當量)

sha1("string", true); 

的SHA1什麼的NodeJS相當於獲得SHA1原料的原始輸出輸出?

編輯:我做了一些測試,這行:

crypto.createHash('sha1').update('string').digest('base64'); 

產生相同的輸出PHP的

base64_encode(sha1('string', true)); 

當我試圖將字符串和SHA1的結果出現我的問題,再次獲取SHA1:

base64_encode(sha1(sha1("string", true) . "another string", true)) 

與不同的NodeJS:

var stringhash = crypto.createHash('sha1').update('string').digest(); 
crypto.createHash('sha1').update("another string" + stringhash).digest('base64') 

回答

2

像這樣:

const crypto = require('crypto'); 
let digest = crypto.createHash('sha1').update('string').digest(); 
process.stdout.write(digest); 

EDIT:你的第二個例子的等效:

let hash1 = crypto.createHash('sha1').update('string').digest(); 
let hash2 = crypto.createHash('sha1').update(hash1).update('another string'); 
let digest = hash2.digest('base64'); 
+0

基於文檔的NodeJS,在.digest(): 「如果編碼是提供一個字符串將被返回; 「 」Buffer「相當於PHP的sha1的原始輸出嗎? – whoknows

+1

@whoknows Node.js中的」Buffer「包含」UInt8Array「形式的二進制(」raw「)數據,這可能相當於PHP代碼的返回結果。 – robertklep

+0

@whoknows在第二個示例中查看我的編輯 – robertklep