decode base64: invalid input

前端 未结 4 569
执念已碎
执念已碎 2021-02-01 13:37

Trying to decode base64 file on GNU/Linux, I get \"base64: invalid input\".

$ base64 test.zip | base64 -d > test2.zip
base64: invalid input
$ ll test*
-rw-r--         


        
相关标签:
4条回答
  • 2021-02-01 13:48

    You can also try using

    echo -n
    

    to suppress new lines and padding the input length to a multiple of 4 with one to three equal characters

    =
    
    0 讨论(0)
  • 2021-02-01 14:03

    That version will not decode (by default) lines with separators, yet the encoder does that by default. (Newer versions don't have this problem.)

    One solution:

    base64 -w 0 foo.zip | base64 -d > foo2.zip

    Alternate:

    base64 foo.zip | base64 -di > foo2.zip

    The -i option stands for (from the man page):

    -i, --ignore-garbage
           When decoding, ignore non-alphabet characters.
    [...]
    Decoding require compliant input by default, use --ignore-garbage to
    attempt to recover from non-alphabet characters (such as newlines)
    
    0 讨论(0)
  • 2021-02-01 14:04

    If you're doing this on a mac, your version of base64 might not have the flexibility to handle ignoring garbage. If you brew install coreutils, you'll have the gbase64 utility and use it as Joe has described.

    0 讨论(0)
  • 2021-02-01 14:05

    Or even more simply

    base64 -di foo.zip > foo2.zip

    0 讨论(0)
提交回复
热议问题