最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么每次重新運行代碼,得到的hash值都是一樣的?

貌似計算hash的函數(shù)沒寫完整

正在回答

4 回答

//注意int轉(zhuǎn)string不能這樣:string(b.Index)?+?string(b.TimeStamp)
blockData?:=?strconv.Itoa(int(b.Index))+strconv.Itoa(int(b.TimeStamp))+b.PreBlockHash
fmt.Println(blockData)

這是因為老師的int轉(zhuǎn)string語句寫錯了,

string(b.Index)?+?string(b.TimeStamp)

上面這條語句每次輸出都是同一個亂碼符號,因此Index和TimeStamp在計算哈希值的時候根本沒有起到作用,而創(chuàng)世區(qū)塊其他的值都是固定的,所以每次算出來的哈希值都是一樣的。

2 回復(fù) 有任何疑惑可以回復(fù)我~
#1

weixin_慕容7184231

創(chuàng)始區(qū)塊的時間戳也是會變化的,所以hash值應(yīng)該也不同吧
2023-07-10 回復(fù) 有任何疑惑可以回復(fù)我~
func?CalculateHash(b?Block)?string?{
???blockData?:=?string(b.Index)?+?string(b.Timestamp)?+?b.PreBlockHash?+?b.Data
???hashInBytes?:=?sha256.Sum256([]byte(blockData))
???return?hex.EncodeToString(hashInBytes[:])
}

每次的時間Timestamp都不一樣呀,為什么生成的第0個blockhash都一樣的~

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕村1538275

第一次初始化,index為-1的時候是沒有timestamp的,導(dǎo)致只有3個參數(shù),index,prehash,data,這三個是固定死的,所以每次第0個都是一樣的~
2019-07-25 回復(fù) 有任何疑惑可以回復(fù)我~
#2

weixin_慕容7184231 回復(fù) 慕村1538275

但是index為0的創(chuàng)始區(qū)塊不是有timestamp的嘛?即time.Now().Unix()
2023-07-10 回復(fù) 有任何疑惑可以回復(fù)我~

傳入的數(shù)據(jù)是一致的,那么hash出來的結(jié)果就不會變。

0 回復(fù) 有任何疑惑可以回復(fù)我~

這就是hash運算的確定性 看下2-4節(jié)就明白了

同一個數(shù)據(jù)hash后的結(jié)果是確定的

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

為什么每次重新運行代碼,得到的hash值都是一樣的?

我要回答 關(guān)注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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