为了对标准输入/输出或任何文件内容进行编码或解码,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
输出:
**
示例#2:解码文本数据
**
以下命令将解码编码文本’bGludXhoaW50LmNvbQ== ’ 并打印原始文本作为输出。
$ echo 'bGludXhoaW50LmNvbQo=' | base64 --decode
输出:
示例#3:编码文本文件
创建一个名为“ sample.txt ”的文本文件,其中包含以下将使用 base64 编码的文本。
sample.txt
PHP 使用base64_encode和base64_decode 进行数据编解码
您可以在命令行中打印编码文本或将编码文本存储到另一个文件中。以下命令将对sample.txt文件的内容进行编码,并在终端中打印编码后的文本。
$ base64 sample.txt
输出:
以下命令将对sample.txt文件的内容进行编码,并将编码后的文本保存到encodingData.txt文件中。
$ base64 sample.txt > encodingData.txt $ cat encodingData.txt
输出:
**
示例#4:解码文本文件
**
以下命令将解码encodedData.txt文件的内容并在终端打印输出
$ base64 -d encodedData.txt
输出:
以下命令将对encodedData.txt文件的内容进行解码,并将解码后的内容存储到文件originalData.txt 中。
$ base64 --decode encodingData.txt > originalData.txt $ cat originalData.txt
输出:
**
示例#5:编码任何用户定义的文本
**
使用以下代码创建一个名为encode_user_data.sh的 bash 文件。以下脚本将任何文本数据作为输入,使用 base64 对文本进行编码,并将编码后的文本打印为输出。
#!/bin/bash echo "Enter Some text to encode" read text etext=`echo -n $text | base64` echo "Encoded text is : $etext"
运行脚本。
$ base encode_user_data.sh
输出:
**
示例#6:通过解码文本检查用户有效性
**
创建一个名为checkValidity.sh的 bash 文件并添加以下代码。在这个例子中,从用户那里获取了一个秘密文本。预定义的编码文本由 base64 解码并与用户输入进行比较。如果两个值相等,则输出将是“您已通过身份验证”,否则输出将是“您未通过身份验证”。使用这个简单的解码代码,可以很容易地完成正常的验证。
#!/bin/bash echo "Type your secret code" read secret otext = ` echo 'Nzc3Nzk5Cg==' | base64 --decode ` if [ $secret == $otext ] ; 然后 echo “您已通过身份验证” else echo “您未通过身份验证” fi
运行脚本。
$ bash checkValidity.sh
输出:
结论:
对于任何敏感数据,如密码或任何机密数据,编码和解码系统根本不适合。您必须使用加密和解密系统来保护这些类型的数据。