目录

编码

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)

参考资料