簡體   English   中英

GOLANG 64decode字符串非法數據,不確定為什么

[英]GOLANG 64decode string illegal data, not sure why

地鼠研究員:

我堅持簡單的事情。 我正在嘗試將解碼轉換為64endoded字符串(確切地說是OAUTH令牌)。

我拆分了字符串,然后將拆分的一部分之一進行了64位解碼,我總是發現一個非法字符。 當我將相同的值放到任何基於Web的64decoder中時,它就會起作用。

我認為也許存在尾隨null或其他東西。 誰能給我一些建議。 我將代碼放在這里: https : //play.golang.org/p/cf-x6GgpEp

確切的錯誤是: illegal base64 data at input byte 408

下面也是代碼,它很簡短:

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是base64 URL編碼的,未填充。

這是固定版本

唯一的區別是我使用了base64.RawURLEncoding

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM