gpt4 book ai didi

Golang Base64 到 Hex 转换

转载 作者:行者123 更新时间:2023-12-02 14:00:12 24 4
gpt4 key购买 nike

为什么 Golang base64 到 Hex 生成的编码值与在线转换器不同?

原始字符串:

ARVIN

Base64 编码:

QVJWSU4=

Golang(base64 到十六进制):

51564a575355343d

在线(base64 to hex):

415256494e

package main

import (
"encoding/hex"
"fmt"
)

func main() {

base64 := "QVJWSU4="
hx := hex.EncodeToString([]byte(base64))
fmt.Println("Original String: ARVIN")
fmt.Println()
fmt.Println(base64 + " ==> " + hx)
}

最佳答案

您可以将未编码的值直接转换为十六进制:

h := hex.EncodeToString([]byte("ARVIN"))
fmt.Println(h) // prints 415256494e

鉴于程序以 Base64 编码开始,程序必须将 Base64 字符串解码为字节,然后将字节编码为十六进制字符串。这就是在线工具的作用。

问题中的代码将 base64 字符串编码为十六进制字符串。它缺少解码步骤。

以下是如何在 Go 中将 base64 重新编码为十六进制:

p, err := base64.StdEncoding.DecodeString("QVJWSU4=")
if err != nil {
// handle error
}
h := hex.EncodeToString(p)
fmt.Println(h) // prints 415256494e

Run it in the playground .

关于Golang Base64 到 Hex 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58442596/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com