0
我在php和javascript(nodejs)中有兩個函數,兩者都必須給出相同的結果,但他們沒有。在Nodejs和PHP中處理文本
他們爲什麼會給出不同的結果?
PHP:
base64_encode(sha1($string,1));
的Javascript:功能
new Buffer(require("crypto").createHash("sha1").update(string,"utf8").digest("hex")).toString("base64");
我不知道Node.js的功能,所以我把這個作爲一個評論:你的PHP代碼使用SHA1()作爲輸入,爲BASE64_ENCODE原始的二進制輸出,同時它在我看來,在node.js代碼中,sha1的字符串首先被轉換爲十六進制。 (請參閱http://de3.php.net/manual/en/function.sha1.php使用sha1()中的第二個參數) – cypherabe
謝謝。真的,這是問題。 Javascript版本的函數是錯誤的。 我用這個: require(「crypto」)。createHash(「sha1」)。update(string,「utf8」)。digest(「base64」) – uSide
您好,歡迎來到Stackoverflow。你可以接受你自己的答案(過一會兒)。 –