来自Node和openssl库的Base64编码产生不同的输出

为什么以下产生不同的输出?

  1. OpenSSL命令行

回声克里斯| openssl base64 // Q2hyaXMK

  1. Node.js的

new Buffer('Chris')。toString('base64')// Q2hyaXM =

我正在尝试使用Passport-http库进行基本身份validation,并且它似乎期望#1格式的编码数据。 这对我来说是一个问题,因为我所有的testing都依靠节点来生成编码数据(摩卡,超级)。 任何帮助是极大的赞赏。

不同之处在于, echo命令在它应该输出的文本末尾附加一个换行字符。

换句话说, Chris的Base64编码实际上是Q2hyaXM=但是 Chris\n (其中\n不是一个字面值\后跟一个字母n但是只是一个linefeed字符)的Q2hyaXMK的确是Q2hyaXMK 。 您可能想要比较:

 new Buffer('Chris\n') 

为了比较你的命令的结果;)