From 4963831515dea8aa8225fae991696d89f344839e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 29 Oct 2022 16:34:34 +0800 Subject: [PATCH] RP @chai001125 https://linux.cn/article-15189-1.html --- ... base64 Encode and Decode With Examples.md | 57 ++++++++++--------- 1 file changed, 29 insertions(+), 28 deletions(-) rename {translated/tech => published}/20221013 Learn Bash base64 Encode and Decode With Examples.md (64%) diff --git a/translated/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md b/published/20221013 Learn Bash base64 Encode and Decode With Examples.md similarity index 64% rename from translated/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md rename to published/20221013 Learn Bash base64 Encode and Decode With Examples.md index 2418e538f9..c69b31a88a 100644 --- a/translated/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md +++ b/published/20221013 Learn Bash base64 Encode and Decode With Examples.md @@ -3,23 +3,24 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15189-1.html" 通过示例来学习 Bash base64 的编码和解码 ====== -你想了解 Base64 编码和解码的方法吗?在本教程中,我们使用 bash shell 脚本和各种示例解释了 Base64 编码和解码步骤。 -![][1] +> 你想了解 Base64 编码和解码的方法吗?在本教程中,我们使用 Bash shell 脚本和各种示例解释了 Base64 编码和解码步骤。 -Base64 编码方法通过将二进制数据转换为文本,如此编码数据可以在任何通信媒体进行传输。这种编码方法主要用于电子邮件加密的过程。 +![](https://img.linux.net.cn/data/attachment/album/202210/29/163350mde5lll86j6lspln.jpg) -总体而言,Base64 编码方法是一种二进制到文本的编码方案,以 ASCII 字符串格式表示 8 字节的二进制数据。使用这种编码方法在各种媒介之间传输数据时有几个优势,尤其是对于那些能可靠支持文本内容的媒介。因此,Base64 编码方法在万维网上被广泛使用。这种编码方案最常用于电子邮件附件的编码上。 +Base64 编码方法可以将二进制数据转换为文本,如此编码数据可以在任何通信媒介进行传输。这种编码方法主要用于电子邮件加密的过程。 -根据 Base64 编码表,二进制数据可以经 Base64 编码后可以转换为 64 个不同的 ASCII 字符,包含大写字母 A 到 Z,小写字母 a 到 Z,数字 0 到 9 ,以及符号 + 和 /,这些字符在传输和打印上十分便捷。 +总体而言,Base64 编码方法是一种二进制到文本的编码方案,以 ASCII 字符串格式表示 8 字节的二进制数据。使用这种编码方法在各种媒介之间传输数据时有几个优势,尤其是对于那些能可靠地支持文本内容的媒介。因此,Base64 编码方法在万维网上被广泛使用。这种编码方案最常用于电子邮件附件的编码上。 -这 64 个 ASCII 字符代表着从 `000000` 到 `111111` 的二进制值。每个非末尾的 Base64 编码后的 ASCII 字符恰好代表 6 位二进制值。 +根据 Base64 编码表,二进制数据可以经 Base64 编码后可以转换为 64 个不同的 ASCII 字符,包含大写字母 `A` 到 `Z`,小写字母 `a` 到 `z`,数字 `0` 到 `9`,以及符号 `+` 和 `/`,这些字符在传输和打印上十分便捷。 + +这 64 个 ASCII 字符代表着从 `000000` 到 `111111` 的二进制值。每个非末尾的 Base64 编码字符恰好代表 6 位二进制值。 ![Base64 Index Table][2] @@ -33,21 +34,21 @@ Base64 编码方法通过将二进制数据转换为文本,如此编码数据 base64 [OPTIONs] [INFILE] [OUTFILE] ``` -选项(Option):参照下面的表格,你可以提供任何的选项或组合多个选项。 -输入(INFILE):你可以从标准输入(如命令行)或文件中输入。 -输出(OUTFILE):你可以将输出重定向到标准输出,如终端或文件中。 +- 选项(`Option`):参照下面的表格,你可以提供任何的选项或组合多个选项。 +- 输入(`INFILE`):你可以从标准输入(如命令行)或文件中输入。 +- 输出(`OUTFILE`):你可以将输出重定向到标准输出,如终端或文件中。 | 选项 | 描述 | | :- | :- | -| -e 或者 –encode | 此选项用于对标准输入的数据或从文件中读入的数据进行编码。这是默认选项。 | -| -d 或者 –decode | 此选项用于对标准输入的数据或从文件中读入的已 base64 编码数据进行解码。 | -| -n 或者 –noerrcheck | 默认情况下,base64 在解码数据时,会自动检查是否有错误。你可以使用 –n 或 –noerrcheck 选项,在解码时忽略检查。 | -| -i, –ignore-garbage | 此选项用于在解码时忽略非字母字符。 | -| -u 或者 –help | 此选项用于获取有关使用此命令的信息。 | +| `-e` 或者 `--encode` | 此选项用于对标准输入的数据或从文件中读入的数据进行编码。这是默认选项。 | +| `-d` 或者 `--decode` | 此选项用于对标准输入的数据或从文件中读入的已 Base64 编码数据进行解码。 | +| `-n` 或者 `--noerrcheck` | 默认情况下,Base64 在解码数据时,会自动检查是否有错误。你可以使用该选项在解码时忽略检查。 | +| `-i` 或 `--ignore-garbage` | 此选项用于在解码时忽略非字母字符。 | +| `-u` 或者 `--help` | 此选项用于获取有关使用此命令的信息。 | #### 示例 1:基本编码 -在 Linux 中,默认已安装好 base64 软件包。因此,你可以轻松地从命令行使用 base64。要对一个字符串或文本进行编码,你可以通过管道将其传递到命令行,并获取待编码的文本。在下面的示例中,对字符串 debugpoint.com 进行了 base64 编码。 +在 Linux 中,默认已安装好 Base64 软件包。因此,你可以轻松地从命令行使用 Base64。要对一个字符串或文本进行编码,你可以通过管道将其传递到 `base64` 命令,并获取待编码的文本。在下面的示例中,对字符串 `debugpoint.com` 进行了 Base64 编码。 ``` echo "debugpoint.com" | base64 @@ -55,21 +56,21 @@ echo "debugpoint.com" | base64 ![bash base64 encode and decode - example 1][3] -结果是经过 base64 编码后的字符串。 +结果是经过 Base64 编码后的字符串。 #### 解释 Base64 编码方法使用下面的几个步骤来转换输入的数据。首先,每个输入字符转换为 8 位二进制值,接着,二进制字符串拆分为一组组 6 位的二进制值,然后,每个 6 位的二进制值被转换为十进制值。 -最后,每个十进制值都通过 base64 编码索引表转换为 base64 字符。 +最后,每个十进制值都通过 Base64 编码索引表转换为 Base64 字符。 -在上面的示例中,第一个字符 `d` 被转换为二进制 `01100100`。前 6 位是 `011001`,转换为十进制是 `25`。`25` 在 base64 编码索引表中对应着 `Z`。整个输入的文本流都像如此编码。请参阅以下编码过程的示例。 +在上面的示例中,第一个字符 `d` 被转换为二进制 `01100100`。前 6 位是 `011001`,转换为十进制是 `25`。`25` 在 Base64 编码索引表中对应着 `Z`。整个输入的文本流都像如此编码。请参阅以下编码过程的示例。 ![Base64 Encode and Decode – inner working][4] #### 示例 2:基本解码 -要解码字符串,需要将编码值传递给 base64,选项为 `--decode`,它将输出你之前输入的字符串。 +要解码字符串,需要将编码值传递给 `base64` 命令,选项为 `--decode`,它将输出你之前输入的字符串。 ![bash base64 encode and decode - example 2 (decode the same example)][5] @@ -85,7 +86,7 @@ base64 example3.txt > example3-encoded.txt #### 示例 4:对文本文件进行解码 -要解码使用 base64 编码的文本文件,只需使用 `--decode` 或 `-d` 选项,并传递文本文件名。 +要解码使用 Base64 编码的文本文件,只需使用 `--decode` 或 `-d` 选项,并传递文本文件名。 ``` base64 -d example3-encoded.txt @@ -93,9 +94,9 @@ base64 -d example3-encoded.txt #### 示例 5:对用户输入的数据进行编码 -使用 bash shell 编程,你可以通过终端接收用户的输入,并对其进行 base64 编码。你需要先编写一个简单的 shell 脚本,并在授予可执行权限后执行。 +使用 Bash shell 编程,你可以通过终端接收用户的输入,并对其进行 Base64 编码。你需要先编写一个简单的 shell 脚本,并在授予可执行权限后执行。 -以下就是一个简单的示例,它从用户那里获得输入,然后进行 base64 编码,最终显示编码的字符串。 +以下就是一个简单的示例,它从用户那里获得输入,然后进行 Base64 编码,最终显示编码的字符串。 ``` #!/bin/bash @@ -109,7 +110,7 @@ echo "The Base64 Encoded text is: $output_text" ![Custom input - base64 encode and decode using script][7] -#### 示例 6:用 base64 进行简单的身份认证 +#### 示例 6:用 Base64 进行简单的身份认证 你可以运用上述的编码和解码方法,实现一个简单的身份验证系统。你可以让用户输入密码或密码,然后将密码存储在文件中。或者进行实时比较。 @@ -132,7 +133,7 @@ fi ![A Simple Authentication using bash base64][8] -### 结论 +### 总结 我希望你能通过这些示例,学会 [Base64][9] 编码和解码的基础知识。此外,你也了解到 Base64 的内部编码方式。如果这对你很有帮助,或你还需要有关此主题的其他教程,请在下面的评论区中告诉我吧。 @@ -143,7 +144,7 @@ via: https://www.debugpoint.com/bash-base64-encode-decode/ 作者:[Arindam][a] 选题:[lkxed][b] 译者:[chai001125](https://github.com/chai001125) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出