2014-09-01 36 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

相关问题