Golang Base64至Hex转换

问题描述 投票:0回答:1

为什么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)
}
go base64 hex
1个回答
1
投票

在线工具将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

© www.soinside.com 2019 - 2024. All rights reserved.