📌  相关文章
📜  go 使用 Base64 RFC 4648 将二进制数据转换为 ASCII 文本. - Go 编程语言(1)

📅  最后修改于: 2023-12-03 14:41:32.491000             🧑  作者: Mango

使用 Base64 RFC 4648 将二进制数据转换为 ASCII 文本 - Go 编程语言

Base64 是一种将二进制数据转换为 ASCII 文本的编码方式,通过使用 64 个字符(A-Z,a-z,0-9,+,/)将每个 3 字节组合转换为 4 个 ASCII 字符的编码方式。在 Go 编程语言中,可以使用内置的 encoding/base64 包来处理 Base64 编码和解码。

下面是一个使用 Go 进行二进制数据和 ASCII 文本之间的 Base64 编码和解码的示例:

Base64 编码
package main

import (
	"encoding/base64"
	"fmt"
)

func main() {
	data := []byte("Hello, World!") // 待编码的二进制数据

	// 使用 Base64 编码
	encoded := base64.StdEncoding.EncodeToString(data)

	fmt.Println(encoded) // 输出编码后的 ASCII 文本
}

以上代码首先导入了 encoding/base64 包,然后创建了一个要编码的二进制数据,即 Hello, World!。接下来,使用 base64.StdEncoding.EncodeToString 函数对数据进行 Base64 编码,并将结果存储在 encoded 变量中。最后,输出编码后的 ASCII 文本。

Base64 解码
package main

import (
	"encoding/base64"
	"fmt"
)

func main() {
	encoded := "SGVsbG8sIFdvcmxkIQ==" // 编码后的 ASCII 文本

	// 使用 Base64 解码
	decoded, err := base64.StdEncoding.DecodeString(encoded)
	if err != nil {
		fmt.Println("解码失败:", err)
		return
	}

	fmt.Printf("%s\n", decoded) // 输出解码后的二进制数据
}

以上代码首先导入了 encoding/base64 包,然后创建了一个要解码的 Base64 编码后的 ASCII 文本。接下来,使用 base64.StdEncoding.DecodeString 函数对编码后的文本进行解码,并将结果存储在 decoded 变量中。如果解码过程中出现错误,则输出解码失败的错误信息。最后,使用 %s 格式化字符串输出解码后的二进制数据。

请注意,为了使解码过程更安全,应该始终检查解码过程中是否发生了错误。

以上就是使用 Go 编程语言进行 Base64 编码和解码的示例。这种编码方式非常常见,特别适合在网络传输中处理二进制数据。