use*_*450 2 base64 openssl echo basic-authentication node.js
为什么以下产生不同的输出?
echo Chris | openssl base64
# Q2hyaXMK
Run Code Online (Sandbox Code Playgroud)
new Buffer('Chris').toString('base64')
// Q2hyaXM=
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用该passport-http库进行基本身份验证,它似乎期望编码数据的格式为#1.这对我来说是一个问题,因为我的所有测试都依赖于Node来生成编码数据(mocha,supertest).
区别在于echo命令在其输出的末尾附加换行符(\n\n).
换句话说,该Base64编码为Chris确实Q2hyaXM=,但的表示Chris\n(其中\n只是一个newline字符)是Q2hyaXMK.
您可能想与以下内容进行比较:
new Buffer('Chris\n')
Run Code Online (Sandbox Code Playgroud)
...或更好,但我们可以找到的manUAL条目echo是:
Run Code Online (Sandbox Code Playgroud)Options: -n do not append a newline
所以简单地使用:
echo -n Chris | openssl base64
#
Run Code Online (Sandbox Code Playgroud)
会Q2hyaXM=按预期输出!
| 归档时间: |
|
| 查看次数: |
270 次 |
| 最近记录: |