通过示例学习 Bash base64编码和解码

想了解 base64 编码和解码方法吗?在本教程中,我们将通过各种示例解释使用 bash shell 脚本的 base64 编码和解码步骤。

base64 编码方法通过将二进制数据转换为文本,在任何通信介质上传输数据。此方法主要用于电子邮件加密过程。

通常,Base64 方法是一种二进制到文本编码方案,表示 ASCII 字符串格式的 8 字节二进制数据。在各种媒体之间传输或传输数据时,这有几个优点,特别是那些可靠支持文本内容的媒体。因此,它在万维网上被广泛使用。这种编码方案最常用的情况可能是将其用于电子邮件附件。

根据 Base64 表示表,二进制数据可以转换为 64 个不同的 ASCII 字符,这些字符易于传输和打印。这种编码方法使用字母A到Z、A到Z、0到9、+和/。

总共 64 个 ASCII 字符,表示 000000 到 111111 之间的二进制。每个非最终 Base64 位数字正好代表 6 位数据。

Base64索引表

Bash base64编码和解码

语法

在你学习这些例子之前,这里是基本语法。

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

选项:您可以提供任何选项或按以下说明组合它们。

输入:可以从标准输入(如命令行)或文件中获取输入。

输出:您可以将输出重定向到标准输出,如终端或文件。

示例1 – 基本编码

在 Linux 中,默认情况下已经安装了 base64 包。因此,您可以从命令行轻松使用它。要对字符串或文本进行简单编码,可以通过管道将其通过命令行传递,然后获取编码的文本。在此示例中,字符串 www.linuxmi.com 编码为 base64。

bash base64编码和解码–示例1

结果是base64编码的字符串。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
⚡ echo "www.linuxmi.com" | base64

说明

编码方法使用几个步骤来转换输入。输入字符转换为 8 位二进制值。整个二进制字符串集被拆分为 6 位二进制值,这些值被转换为小数。

每个十进制值都通过 base64 索引表转换为 base64 字符。

在上例中,第一个字符“w”被转换为二进制01011000。前6位为010110,即十进制22。22表示 base64 索引表中的w。整个文本流都是如此。请参见下面的示例。

Base64编码和解码–内部工作

示例2 – 基本解码

要解码字符串,只需使用选项 –decode 将编码值传递给 base64。它会给你精确的输入字符串。

bash base64编码和解码–示例2(解码相同的示例)

示例3 – 对文本文件进行编码

同一命令可用于对文本文件进行编码,并将输出重定向到另一个文本文件。下面是方法。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
⚡ base64 linuxmi.txt > linuxmi-encoded.txt

对文本文件进行编码

示例4 – 解码文本文件

要解码使用 base64 编码的文本文件,只需使用 –decode 或 -d 开关并传递文本文件名。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
⚡ base64 -d linuxmi-encoded.txt

对文本文件进行解码

示例5 – 对用户的自定义输入进行编码

使用 bash shell 编程,您可以通过终端从用户那里获取输入并对其进行编码。但为此,您需要编写一个简单的 shell 脚本,并在授予可执行权限后执行它。

下面是一个简单的示例,它接受用户的输入并显示编码的字符串。

#!/bin/bash
#获取输入、编码为base64并在终端上显示的示例程序 
#www.linuxmi.com
#示例来自 Linux迷 www.linuxmi.com
echo "输入要编码到base64的文本:"
read input_text
output_text=`echo -n $input_text | base64`
echo "Base64编码文本为:$output_text"

自定义输入–使用脚本进行base64编码和解码

示例6 – 使用 base64 的简单身份验证

您可以使用上述编码和解码方法实现一个简单的身份验证系统。您可以要求用户输入密码或密码。然后将密码存储在一个文件中或动态比较。

如果存储的编码字符串与用户输入的编码文本匹配,则对用户进行身份验证。然而,它是检查身份验证的一种简单方法,但有时对简单的业务案例很有用。

#!/bin/bash
#获取输入、编码为base64并在终端上显示的示例程序
#示例来自 Linux迷 www.linuxmi.com
echo "输入密码"
read pwd1
decoded_text=`echo 'd3d3LmxpbnV4bWkuY29tCg==' | base64 --decode`
if [[ $pwd1 == $decoded_text ]]
then
    echo "您是 VIP 用户!"
else
    echo "您不是 VIP 用户!"
fi

使用 bash base64 的简单身份验

总结

我希望您能通过这些示例学习 Base64 编码和解码的基础知识。另外,了解一下它的内部工作原理。如果这对您有帮助或需要有关此系列的其他教程,请在下面的留言栏里告诉我。

The post 通过示例学习 Bash base64编码和解码 first appeared on Linux迷.

版权声明:
作者:lichengxin
链接:https://www.techfm.club/p/36257.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>