2013-03-19 39 views
16

Cố gắng giải mã tệp base64 trên GNU/Linux, tôi nhận được "base64: input không hợp lệ".decode base64: đầu vào không hợp lệ

$ base64 test.zip | base64 -d > test2.zip 
base64: invalid input 
$ ll test* 
-rw-r--r-- 1 user grp 152 19 11:41 test.zip 
-rw-r--r-- 1 user grp 57 19 11:42 test2.zip 

Tôi đã thử dos2unix lệnh, nhưng không hiệu quả.

phiên bản base64 của tôi:

$ base64 --version 
base64 (GNU coreutils) 5.97 
Copyright (C) 2006 Free Software Foundation, Inc. 
This is free software. You may redistribute copies of it under the terms of 
the GNU General Public License <http://www.gnu.org/licenses/gpl.html>. 
There is NO WARRANTY, to the extent permitted by law. 

Written by Simon Josefsson. 
+0

Trên hệ thống của tôi ít nhất, đó là '-D' để giải mã, không phải' -d'. 'Base64 --help' nói gì trên hệ thống của bạn? –

+0

Cân nhắc nâng cấp; phiên bản hiện tại ít nhất là 8.20 (từ năm 2012) và có lẽ vẫn còn gần đây. –

+0

Phiên bản đó là những gì CentOS 5.x cài đặt, do đó, tùy thuộc vào người kiểm soát môi trường, anh ta có thể không có tùy chọn. – Joe

Trả lời

37

Đó là phiên bản sẽ không giải mã (theo mặc định) đường có dải phân cách, nhưng các bộ mã hóa nào đó theo mặc định. (Phiên bản mới hơn không có vấn đề này.)

Một giải pháp:

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

khác:

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

Tùy chọn -i là viết tắt của (từ trang man):

-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) 
Các vấn đề liên quan