OpenSSL可以解码不包含换行符的base64数据吗?
我在bash变量中有两个base64数据块。base64数据中通常的换行符已由空格代替,并且该变量基本上是一个非常长的单行字符串。 我可以解码变量中包含的base64数据的两个块,但是在尝试执行此操作时遇到了一些细微差别。我想了解我是否正确处理此问题,或者是否有更好的方法来解码不包含换行符的base64数据。这是我所拥有的: 第一个块是350个字符,我可以像这样成功解码它: echo ${DATA::350} | openssl base64 -d | wc -c 256 第二个块是5745个字符,但以上命令未产生预期的结果。即: $ echo {DATA:350} | openssl base64 -d | wc -c 432 但是,如果我把换行符重新插入,它会起作用: $ echo ${DATA:350} | tr ' ' "\n" | openssl base64 -d | wc -c 4240 我预计会有一些行长问题,第一个块足够小以避免发生,并且这似乎是所使用的base64解码器的功能(两个常用的解码器base64和的openssl base64行为不同)。 的base64解码器(代替openssl base64)停止在第一无效字符(空格),并因此只是解码而输出的OpenSSL 432个字符(9“线”)的第一个“行”(48个字节的输出数据)。该base64命令具有忽略垃圾的选项,因此可以正常工作: $ echo ${DATA:350} …