2017-04-20 128 views
1

SHA-256爲給定輸入提供256位哈希碼。當我嘗試時,我得到了隨機輸入字符串的下面的哈希值 -如何計算SHA-256哈希大小

2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 

該散列有64個字符。因此,考慮常見的編碼,它的規模將是─

UTF-8 = 64 * 8 = 512位 UTF-16 = 64 * 16 = 1024bits

那麼怎麼來的其所謂的256位散列。我是否做了不正確的轉換?

回答

1

字符串2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824是一個十六進制編碼的字符串。它是以16位數字表示的字節,因此每2個字符代表一個字節。

所以2c是第一個字節,f2是第二個字節等等。由於字符串有64個字符,它代表32個字節。

和32字節= 256位

2

這是base16/hex表示,每個字節只有4(log2 16)位數據。

因此,sha256在這裏是4 * 64。沒有什麼是錯的。