为什么在 Mac 上对我的文件进行 base64 编码不会产生正确的 base64 字符串?

Dav*_*ave 2 string macos bash base64 encoding

我使用的是 Mac OS 10.13.3。我正在尝试对二进制文件进行 base64 编码,但遇到了一些问题。具体来说,我认为所有 base64 编码文件的长度必须是 4 的倍数。但是,当我对文件进行编码时,请注意长度不能被 4 整除......

localhost:lib davea$ openssl base64 -in myfile.binary -out ~/Downloads/myfile.base64
localhost:lib davea$ ls -al ~/Downloads/myfile.base64 
-rw-r--r-- 1 davea staff 93162 May 31 14:22 /Users/davea/Downloads/myfile.base64
Run Code Online (Sandbox Code Playgroud)

另外当我查看base64文件的内容时,我没有看到末尾的传统“=”或“==”,这通常表示填充

localhost:lib davea$ cat ~/Downloads/myfile.base64
...
C9vgMjoKSQYkXMLTrGKRleR558g3bY3VTqlsVvTqZXquCLp4JS4cprTG6N10H0u9
i4pwPrVmSAP2DmE1V7mGwR2e4fiYEWnZjpSbHofpzlUo34yhiQ2/5kJoQZktD7BU
uxYBAgQIECBAgBs2
Run Code Online (Sandbox Code Playgroud)

我做错了什么,还是有其他方法可以对我的文件进行 base64 编码?

Jas*_*son 5

好的。我相信我们想得太多了。这是您为获得所需行为而寻找的内容:

openssl base64 -A -in myfile.binary -out ~/Downloads/myfile.base64

这将转换为 base64,没有任何行结尾。该-A选项是什么做的伎俩。