Sha-3
keccak 256 的正確整數輸入值
假設我們使用
k = sha3.keccak_256()
(pysha3 包)。應該如何轉換函式的整數輸入以
k.update(myinteger)
使輸出正確?例子:
import sha3 myinteger = 1064880000 k = sha3.keccak_256() k.update(myinteger) k.hexdigest()
定義“正確”
這個答案沒有你想像的那麼愚蠢;SHA-3-256 是從位串(或字節串)到 256 位散列的函式;它沒有關於將整數映射到這些位串的預定義想法;它適用於其中任何一個。
現在,使用 SHA-3 的應用程序可能有這樣一個預定義的想法,因此可能會定義一個“正確”的方式。但是,上面的程式碼段中沒有任何內容可以定義它,而且我們不知道您嘗試兼容的應用程序。
如果您沒有預定義的應用程序,並且只是在尋找一種可行的方法,我是否建議將整數轉換為 little-endian 4 字節字元串(或 8 字節,如果整數值可能高於 40 億)。這和任何東西一樣好…