Sha-3

keccak 256 的正確整數輸入值

  • November 18, 2017

假設我們使用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 億)。這和任何東西一樣好…

引用自:https://crypto.stackexchange.com/questions/53266