为了对标准输入/输出或任何文件内容进行编码或解码,Linux 使用 base64 编码和解码系统。对数据进行编码和解码,使数据传输和存储过程更容易。编码和解码不同于加密和解密。通过解码可以很容易地揭示编码数据。所以,这个命令行实用工具不能用于数据安全。字母、数字和“=”符号用于对任何数据进行编码。

句法:

base64 [选项] [输入文件] [输出文件]

您可以在 base64 命令中使用不同类型的选项。在编码或解码时,可以从任何文件或标准输入中获取数据。编码或解码后,您可以将输出发送到文件中或在终端中打印输出。

选项:

-e 或 –encode

此选项用于对来自标准输入或任何文件的任何数据进行编码。它是默认选项。

-d 或 –decode

此选项用于解码来自标准输入或任何文件的任何编码数据。

-n 或 –noerrcheck

默认情况下,base64 在解码任何数据时都会检查错误。您可以使用 –n 或 –noerrcheck 选项在解码时忽略检查。

-u 或 -help

此选项用于获取有关此命令的用法的信息。

-i, --ignore-garbage

此选项用于在解码时忽略非字母字符。

-版权

它用于获取版权信息。

-版本

用于获取版本信息。

本教程通过一些示例展示了如何在 Linux 中使用 base64 命令。

示例#1:编码文本数据

您可以在命令行中使用 base64 对任何文本数据进行编码。当您想使用 base64 对任何数据进行编码时,使用 -e 或 –encode 选项是可选的。因此,如果您没有提及 base64 的任何选项,那么它将适用于编码。以下命令将对数据“ ​linuxhint.com”​进行编码,并将编码后的数据打印为输出。

$ echo  'linuxhint.com' | base64

输出:

最新kali之Bash base64 编码和解码_数据

示例#2:解码文本数据

以下命令将解码编码文本​'bGludXhoaW50LmNvbQ==​ ' 并打印原始文本作为输出。

$ echo 'bGludXhoaW50LmNvbQo=' | base64 --解码

输出:

最新kali之Bash base64 编码和解码_数据_02


示例#3:编码文本文件

创建一个名为“ ​sample.txt​ ”的文本文件,其中包含以下将使用 base64 编码的文本。

样品。txt

PHP 使用​​base64_encode​​​和​​base64_decode​​ 进行数据编解码

您可以在命令行中打印编码文本或将编码文本存储到另一个文件中。以下命令将对​sample.txt​文件的内容进行编码,并在终端中打印编码后的文本。

$ base64 样本.txt

输出:

最新kali之Bash base64 编码和解码_txt文件_03

以下命令将对​sample.txt​文件的内容进行编码,并将编码后的文本保存到​encodingData.txt​文件中。

$ base64 样本

.txt > 编码数据.txt $ cat 编码数据.txt

输出:

最新kali之Bash base64 编码和解码_bash_04

示例#4:解码文本文件

以下命令将解码​encodedData.txt​文件的内容并在终端打印输出

$ base64 -d 编码数据.txt

输出:

最新kali之Bash base64 编码和解码_txt文件_05

以下命令将对​encodedData.txt​文件的内容进行解码,并将解码后的内容存储到文件​originalData.txt 中​。

$ base64 --decode encodingData.txt > originalData.txt

$ cat originalData.txt

输出:

最新kali之Bash base64 编码和解码_bash_06

示例#5:编码任何用户定义的文本

使用以下代码创建一个名为​encode_user_data.sh​的 bash 文件。以下脚本将任何文本数据作为输入,使用 base64 对文本进行编码,并将编码后的文本打印为输出。

#!/bin/bash

echo "Enter Some text to encode"

read text

etext = ` echo -n $text | base64 `

echo "编码文本为:$etext "

运行脚本。

$ base encode_user_data.sh

输出:

最新kali之Bash base64 编码和解码_bash_07

示例#6:通过解码文本检查用户有效性

创建一个名为​checkValidity.sh​的 bash 文件并添加以下代码。在这个例子中,从用户那里获取了一个秘密文本。预定义的编码文本由 base64 解码并与用户输入进行比较。如果两个值相等,则输出将是“​您已通过身份验证​”,否则输出将是“​您未通过身份验证​”。使用这个简单的解码代码,可以很容易地完成正常的验证。

#!/bin/bash

echo "Type your secret code"

read secret

otext = ` echo 'Nzc3Nzk5Cg==' | base64 --decode `

if [ $secret == $otext ] ; 然后

回显 “您已通过身份验证”

否则

回声 “您未通过身份验证”

fi

运行脚本。

$ bash checkValidity.sh

输出:

最新kali之Bash base64 编码和解码_bash_08

结论:

对于任何敏感数据,如密码或任何机密数据,编码和解码系统根本不适合。您必须使用加密和解密系统来保护这些类型的数据。