最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

从节点和OpenSSL库Base64编码产生不同的输出

IT培训 admin 6浏览 0评论

从节点和OpenSSL库Base64编码产生不同的输出

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

  1. OpenSSL的命令行
echo Chris | openssl base64
# Q2hyaXMK
  1. Node.js的
new Buffer('Chris').toString('base64')
// Q2hyaXM=

我试图使用passport-http库基本身份验证,并出现在#1的格式在期待编码数据。这对我来说是一个问题,因为我所有的测试依赖于节点生成编码数据(摩卡,supertest)。

回答如下:

所不同的是echo命令附加在其输出端的端部的换行字符(\n)。

换句话说,Base64编码为Chris确实Q2hyaXM=,但Chris\n的表示(其中\n只是一个newline字符)是Q2hyaXMK

你可能想用比较:

new Buffer('Chris\n')

...或更好,但我们可以找到the manual entry for echo是:

Options:
  -n    do not append a newline

所以,简单地使用:

echo -n Chris | openssl base64
#                 
                

从节点和OpenSSL库Base64编码产生不同的输出

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

  1. OpenSSL的命令行
echo Chris | openssl base64
# Q2hyaXMK
  1. Node.js的
new Buffer('Chris').toString('base64')
// Q2hyaXM=

我试图使用passport-http库基本身份验证,并出现在#1的格式在期待编码数据。这对我来说是一个问题,因为我所有的测试依赖于节点生成编码数据(摩卡,supertest)。

回答如下:

所不同的是echo命令附加在其输出端的端部的换行字符(\n)。

换句话说,Base64编码为Chris确实Q2hyaXM=,但Chris\n的表示(其中\n只是一个newline字符)是Q2hyaXMK

你可能想用比较:

new Buffer('Chris\n')

...或更好,但我们可以找到the manual entry for echo是:

Options:
  -n    do not append a newline

所以,简单地使用:

echo -n Chris | openssl base64
#                     
                
            
发布评论

评论列表 (0)

  1. 暂无评论