2015-07-06 56 views
-6

我有一個巨大的(> 8000字節)的輸入字節數組。我需要將這個字節數組存儲在數據庫中,並稍後提取以供進一步操作。散列字節數組

問題是,這個字節數組列是唯一的。假設我需要檢索此字節數組列上的整個表信息。當涉及字節比較時,它變得非常昂貴。所以考慮存儲這個字節數組的Hash值只是爲了使比較操作更容易。

只是想知道從字節數組生成的散列值是否是唯一的,或者是否有其他方法來實現這一點。

+3

散列根據定義並非對所有輸入都是唯一的。什麼_exactly_是你的問題? – CodeCaster

回答

2

如果散列的大小(以字節爲單位)小於8000,則這是不可能的。畢竟,有256^8000個可能的輸入,所以如果散列函數必須是唯一的,那麼至少必須有許多可能的輸出。

由於默認的C#散列碼會返回一個int,這取決於您的體系結構是32位還是64位(如此4或8個字節),這對於默認散列函數來說甚至不太可能。 (當然,你可以編寫你自己的散列函數,但這是毫無意義的。)

+0

感謝您的回覆。 –