2014-09-01 44 views
1

爲什麼以下產生不同的輸出?來自Node和openssl庫的Base64編碼產生不同的輸出

  1. OpenSSL的命令行

呼應克里斯| OpenSSL的BASE64 // Q2hyaXMK

  1. Node.js的

新的緩衝區( '克里斯')的toString( '的base64') // Q2hyaXM =

我試圖使用用於基本身份驗證的passport-http庫,並且它似乎預期編碼數據的格式爲#1。這對我來說是一個問題,因爲我所有的測試都依賴節點來生成編碼數據(摩卡,超類)。任何幫助是極大的讚賞。

回答

4

區別在於echo命令會在文本應該輸出的文本末尾附加換行字符。

換句話說,Base64編碼爲Chris實際上是Q2hyaXM=Chris\n表示(其中\n不是字面\後跟一個字面n而只是一個linefeed字符)是Q2hyaXMK確實。你可能想用比較:

new Buffer('Chris\n') 

爲了與你的命令的結果進行對比;)

+0

工作就像一個魅力。謝謝您的幫助! – user2840450 2014-09-01 00:34:31

+0

你寫的問答非常好知道。所以,我翻譯了他們與韓國開發者在[ctrlaltdel](http://ctrlaltdel.co.kr)分享。如果你介意,請告訴我,它會被刪除。 – 2014-09-01 01:45:41

+0

沒問題!謝謝你讓我知道 :) – ccjmne 2014-09-01 04:33:10

相關問題