最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

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

运维笔记admin26浏览0评论

从节点和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. 暂无评论