第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JWT Go/Golang base64 編碼負(fù)載產(chǎn)生不同的結(jié)果

JWT Go/Golang base64 編碼負(fù)載產(chǎn)生不同的結(jié)果

Go
收到一只叮咚 2023-07-26 13:42:11
我有以下 JWT 有效負(fù)載:?{"exp": 4724377561}(100 年后的某個日期)在 Go 中對其進(jìn)行編碼會產(chǎn)生ewogICAiZXhwIjogNDcyNDM3NzU2MQp9?使用jwt.io 的編碼,但eyJleHAiOjQ3MjQzNzc1NjF9在簽名時會產(chǎn)生不同的簽名。我在測試裝置中使用 jwt.io 的簽名。我不想使用第 3 方 JWT 工具,以保持我的依賴性較小。我懷疑某種字符編碼是這里的問題。為了保持測試的可讀性,我在裝置中使用純文本 JSON。我使用測試裝置的方式如下(省略其他測試用例):import (? ? "encoding/base64"? ? "reflect"? ? "testing")var testData = []struct {? ? name? ? ? string? ? header? ? string? ? payload? ?string? ? signature string? ? pass? ? ? bool? ? errorType reflect.Type}{{? ? name:? ? ? "Succeed if token not expired",? ? header:? ? `{"typ":"JWT","alg":"HS256"}`,? ? payload:? ?`{"exp": 4724377561}`,? ? signature: "JHtMKvPSMa5BD22BsbxiP1-ELRh1XkIKkarRSev0ZjU",? ? pass:? ? ? true,}}func TestParseJwt(t *testing.T) {? ? HmacSecret = []byte("My super secret key")? ? for _, tst := range testData {? ? ? ? jwt64 :=? ? ? ? ? ? base64.RawURLEncoding.EncodeToString([]byte(tst.header)) + "." +? ? ? ? ? ? base64.RawURLEncoding.EncodeToString([]byte(tst.payload)) + "." +? ? ? ? ? ? tst.signature? ? ? ? _, err := ParseJwt(jwt64)? ? ? ? if tst.pass {? ? ? ? ? ? if err != nil {? ? ? ? ? ? ? ? t.Fatal(tst.name, err)? ? ? ? ? ? }? ? ? ? } else {? ? ? ? ? ? // If an error was expected to be thrown, assert that it is the correct one.? ? ? ? ? ? if reflect.TypeOf(err).String() != tst.errorType.String() {? ? ? ? ? ? ? ? t.Fatal(tst.name, err)? ? ? ? ? ? }? ? ? ? }? ? }}
查看完整描述

2 回答

?
飲歌長嘯

TA貢獻(xiàn)1951條經(jīng)驗 獲得超3個贊

區(qū)別僅在于庫在應(yīng)用 Base64 編碼之前“壓縮”JSON。


看這個例子:


ss := []string{

    `{"exp": 4724377561}`,

    `{"exp":4724377561}`,

}

for _, s := range ss {

    fmt.Println(base64.RawURLEncoding.EncodeToString([]byte(s)), s)

}

輸出(在Go Playground上嘗試):


eyJleHAiOiA0NzI0Mzc3NTYxfQ {"exp": 4724377561}

eyJleHAiOjQ3MjQzNzc1NjF9 {"exp":4724377561}

第二個輸出符合您的預(yù)期。要刪除 Go 中無關(guān)緊要的空格,請使用json.Compact。


查看完整回答
反對 回復(fù) 2023-07-26
?
動漫人物

TA貢獻(xiàn)1815條經(jīng)驗 獲得超10個贊


ewogICAiZXhwIjogNDcyNDM3NzU2MQp9

被解碼為

{
"exp":?4724377561
}

而 jwt.io 字符串被解碼為

{"exp":4724377561}
查看完整回答
反對 回復(fù) 2023-07-26
  • 2 回答
  • 0 關(guān)注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號