我使用的是 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
另外,当我查看base64文件的内容时,我在末尾没有看到传统的“=”或“==”,这通常表示填充
localhost:lib davea$ cat ~/Downloads/myfile.base64
...
C9vgMjoKSQYkXMLTrGKRleR558g3bY3VTqlsVvTqZXquCLp4JS4cprTG6N10H0u9
i4pwPrVmSAP2DmE1V7mGwR2e4fiYEWnZjpSbHofpzlUo34yhiQ2/5kJoQZktD7BU
uxYBAgQIECBAgBs2
我做错了什么,还是有其他方法对我的文件进行 Base64 编码?
好的。 我相信我们想得太多了。 以下是您想要获得所需行为的内容:
openssl base64 -A -in myfile.binary -out ~/Downloads/myfile.base64
这将转换为 base64,没有任何行结尾。
-A
选项就是诀窍。
我做错了什么吗
没有
或者还有其他方法对我的文件进行 Base64 编码吗?
是的,您可以使用
base64
。它需要一个参数来指定行长度,但在其他方面类似,相当于您的命令是:
base64 -b 64 -i myfile.binary -o ~/Downloads/myfile.base64
另外,当我查看base64文件的内容时,我在末尾没有看到传统的“=”或“==”,这通常表示填充
Base64 将 3 个输入字节映射到 4 个输出字节。您的文件有 93162 字节,可被 3 整除,因此不需要填充。
HTH
base64 -i earth.png
将在 mac-os 中将文件转换为 base64