如何从命令行进行base64编码和解码

时间:2020-01-09 10:38:56  来源:igfitidea点击:

如何在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