如何从命令行进行base64编码和解码
如何在Ubuntu,Debian,OSX和Red Hat上进行base64编码
如果我们正在运行流行的Linux发行版,例如Ubuntu,Debian,CentOS或者Red Hat,则通常预安装base64命令行工具。我们不必执行任何其他步骤。
OSX还捆绑了自己的base64版本。
为什么使用Base64编码数据
如果未正确解码,则通过网络传输ASCII文件可能会导致损坏。原因是ASCII文件被字符串转换为字节,并且当这些字节被错误地解码回ASCII时,数据将损坏。
引入Base64是一种将ASCII数据转换为任意字节的方法,然后可以将它们转换为字节,然后正确解码回ASCII。
简而言之,base64编码可确保通过网络传输数据时的完整性。
Base64未加密
编码文件不是加密文件,绝不能用于保护磁盘上的敏感数据。相反,它是以字符串形式传输或者存储大数据的有用方法。
尽管可能混淆了实际的数据应该由冲浪者浏览,但是有权访问base64编码数据的任何人都可以轻松地对其进行解码。
Base64编码字符串
要使用base64编码字符串,我们可以将echo命令通过管道传递到base64命令行工具中。为了确保没有额外的隐藏字符,请使用-n标志。
如果没有-n
标志,我们可能会捕获隐藏的字符,例如换行符或者空格,这会破坏base64编码。
echo -n 'my-string' | base64
将输出以下内容
bXktc3RyaW5n
Base64编码文件
对base64编码文件
base64 /path/to/file
这将输出一个很长的base64编码的字符串。我们可能需要将标准输出写入文件。
bas64 /path/to/file > output.txt
解码字符串
要使用base64进行解码,我们需要使用--decode标志。使用编码的字符串,我们可以像对它进行编码一样将echo命令通过管道传递到base64中。
使用上面显示的示例编码,让我们将其解码回原始形式。
echo -n 'bXktc3RyaW5n' | base64 --decode
如果编码未损坏,则输出应为原始字符串。
解码文件
要解码具有base64编码的内容的文件,我们只需为文件的路径提供" --decode"标志即可。
base64 --decode /path/to/file
与编码文件一样,输出将是原始文件的非常长的字符串。我们可能需要将stdout直接输出到文件。
base64 --decode /path/to/file > output.txt