通过示例学习 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
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论