string - GOLANG 64decode字符串非法数据,不知道为什么

标签 string go decode

各位地鼠:

我被困在一些简单的事情上。我正在尝试转换解码 64endoded 字符串(准确地说是 OAUTH token )。

我拆分字符串,并将拆分的一部分进行 64 位解码,但我总是发现非法字符。当我将相同的值放入任何基于 Web 的 64 位解码器时,它就起作用了。

我认为可能有一个尾随的 null 或其他东西。谁能给我一些建议。我把代码放在这里:https://play.golang.org/p/cf-x6GgpEp

确切的错误是:输入字节 408 处的非法 base64 数据

下面也是代码,很短:

package main

import (
    "fmt"
    "strings"
    b64 "encoding/base64"
)

func main() {

    fmt.Println("Hello, playground and stackover flow users")


    token := `eyJhbGciOiJSUzI1NiIsImtpZCI6IkNKc2hmNnhMOGVuODlhVVZVenJaX1JqMTJwS3pqZkFUdkNqcT    lNbUxGTlUifQ.eyJ2ZXIiO
jEsImp0aSI6IkFULlFxN21mck94RnhZaVFXZWpGQjczMTZnRXdQbWJBVGtsVzB6Sm1FWVRPU0UiLCJp    c3MiOiJodHRwczovL2Nvb
XBhbnl4Lm9rdGEuY29tL29hdXRoMi9hdXMxYTRpYmRhdDBKWXc1czFkOCIsImF1ZCI6Imh0dHA6Ly9s    b2NhbGhvc3Q6MzAwMCIsI
mlhdCI6MTQ4ODA2MDgxMywiZXhwIjoxNDg4MDY0NDEzLCJjaWQiOiIzam1OdlZDRlo1RjZsV096SU9O    TyIsInVpZCI6IjAwdTFhOXNrMXloenR3Y3FSMWQ4Iiwic2NwIjpbInJlYWQiLCJyZW1vdmUiLCJyZXN    lcnZlIl0sInN1YiI6InJlbW92ZUB3b3cuY29tIn0
.XFGZoVv-w4kRgqMDB-Me1RM1aO5f5JH8W_fLFGnYzkLXGassbKMWafAfVx9j-    wzaWVFfHtsH4fiLjZZbCRYkWli0b6Q3VjdDPJq
YcvhN_wQ9WTmqoJLNyY-    AA5o7yThL4Vz5ih7P_nJWMN7xEWUpWadeJbShvPNtdFHHPBFTAiDx0fXFs98vZHfeLEy2dnwYf4aY4p    w
jcfmhOZNaVahMtQh0dJVa0ai4KPMqQXDXMHDrbEwa2eWY_2pCPXUZekvC3DyRFeSfkRJ6fIe3d6XccDgAy_qzjBCjnutyezg7ZzV
d866wkb2j2kJwyr0w3Q5iBBFgxEv6vpcpaM_KHSXTyA`


// Spit the token to get the middle value xx.(we want this).xx



 fragments := strings.Split(token,".")
fmt.Println ( "Here is the value\n"+fragments[1])

jwtFragment, err := b64.StdEncoding.DecodeString(fragments[1])
_=jwtFragment //

fmt.Println (err)

fmt.Println ("any ideas")

最佳答案

JWT 的 URL 是 base64 编码的,没有填充。

Here's a fixed version on play

唯一不同的是我用了base64.RawURLEncoding

关于string - GOLANG 64decode字符串非法数据,不知道为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42472754/

相关文章:

json - 将 API 请求函数传递给另一个函数 GoLang

java - 在 Java 中解码十六进制 NCR

java - 循环遍历多个数组列表并获取元素

c++ - 检查 char * 类型的字符串是否包含另一个字符串

go - 无法解码 gob 数据

Linux 不接受到端口 25 的连接

asp.net - 将 System.Web.Security.MachineKey.Encode 替换为 System.Web.Security.MachineKey.Protect

android - 使用 android MediaCodec api 压缩视频

python - 从 numpy.int32 数组的数据字节中有效地删除每 4 个字节

python - 向右填充多行字符串