Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Golang Base64到十六进制转换_Go_Base64_Hex - Fatal编程技术网

Golang Base64到十六进制转换

Golang Base64到十六进制转换,go,base64,hex,Go,Base64,Hex,为什么Golang base64到Hex产生的编码值与在线转换器不同 原始字符串: 阿文 Base64编码: QVJWSU4= Golang(base64至十六进制): 51564a575355343d 在线(): 415256494e 您可以将未编码的值直接转换为十六进制: h := hex.EncodeToString([]byte("ARVIN")) fmt.Println(h) // prints 415256494e 如果程序以base64编码开始,程序必须将base64字符串解码为

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

原始字符串:

阿文

Base64编码:

QVJWSU4=

Golang(base64至十六进制):

51564a575355343d

在线():

415256494e


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

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

.

已找到解决方案。。。它不必将base64转换为十六进制。正确的方法是STRING=>HEX。我做错的是STRING=>BASE64=>HEX
p, err := base64.StdEncoding.DecodeString("QVJWSU4=")
if err != nil {
    // handle error
}
h := hex.EncodeToString(p)
fmt.Println(h) // prints 415256494e