命令base64
类别: Command 标签: Linux base64 echo printf目录
编码
macOS
base64 file
Linux
-w, –wrap=COLS wrap encoded lines after COLS character (default 76). Use 0 to disable line wrapping
base64 -w0 file
解码
base64 -d
问题
YWRtaW4=
是 admin
的 base64 编码。
- 解码(正确,这里之所以正确是因为base64过滤了。)
$ echo 'YWRtaW4=' | base64 -d admin[username@hostname ~]$
- 编码(错误,这是因为 echo 输出字符后会在后面再输出换行符。)
$ echo 'admin' | base64 YWRtaW4K
解决方案
- 方法一:使用
printf
命令。$ printf 'admin' | base64 YWRtaW4=
- 方法二:可以通过参数
-n
告诉 echo 不输出换行符。$ echo -n 'admin' | base64 YWRtaW4=
- 方法三:可以通过参数
-e
告诉 echo 启用反斜杠转义的解释。$ echo -e 'admin\c' | base64 YWRtaW4=
可用的转义符(来自 man echo):
- \ backslash
- \a alert (BEL)
- \b backspace
- \c produce no further output
- \e escape
- \f form feed
- \n new line
- \r carriage return
- \t horizontal tab
- \v vertical tab
- \0NNN byte with octal value NNN (1 to 3 digits)
- \xHH byte with hexadecimal value HH (1 to 2 digits)