亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

Go Sha256Sum 與 Bash sha256sum 的區別

Go Sha256Sum 與 Bash sha256sum 的區別

Go
翻過高山走不出你 2023-03-21 14:48:39
我的 go 代碼生成的 sha256sum 值與 bash 命令行不同。我已經閱讀了各種問題和答案,它們都指向我已經做過的事情,正如這個社區在發帖前要求我做的那樣這是我的 sha256sum 代碼gosha256Key:=verifyEmail+":"+md5password+":"+dateStrhasherSha256 := sha1.New()hasherSha256.Write([]byte(sha256Key))sha256Val:=hex.EncodeToString(hasherSha256.Sum(nil))這是我的bash腳本代碼:key=$( echo -n "$verifyEmail:$md5PWD:$pwTime" | sha256sum)echo $key我已經驗證密鑰是相同的。請注意,我在 go 中的 dateStr 變量來自日期格式:now := time.Now().Unix()rem := now % 3600date := now-rem         dateStr:=strconv.FormatInt(date,10)通常我會被否決,所以我試著讓這個問題盡可能清晰和簡潔。如果我遺漏了什么,請告訴我。
查看完整描述

1 回答

?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

你說你想計算 SHA-256 校驗和,但你這樣做了:

hasherSha256?:=?sha1.New()

那將是一個 SHA-1 散列器,而不是 SHA-256。而是這樣做:

hasherSha256?:=?sha256.New()

另請注意,要計算某些數據的“一次性”摘要(在字節片中準備好),您可以使用sha256.Sum256()如下函數:

digest?:=?sha256.Sum256([]byte(sha256Key))

請注意,這里digest將是一個數組(不是slice,在 Go 中它們是完全不同的),一個 type 的數組[32]byte。要獲得“它的”切片(類型為[]byte),請像這樣切片:

digestSlice?:=?digest[:]


查看完整回答
反對 回復 2023-03-21
  • 1 回答
  • 0 關注
  • 221 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號