0
我正在使用SHA256Managed生成256位散列,並且我想將它們存儲在sql服務器上。 BitConverter.ToInt64對此有多好?它會忽略額外的字節嗎?在轉換爲int64之前,我應該做一些處理以減少字節數組嗎?BitConverter.ToInt64如何處理32字節的字節(來自SHA256Managed的256位散列)
我正在使用SHA256Managed生成256位散列,並且我想將它們存儲在sql服務器上。 BitConverter.ToInt64對此有多好?它會忽略額外的字節嗎?在轉換爲int64之前,我應該做一些處理以減少字節數組嗎?BitConverter.ToInt64如何處理32字節的字節(來自SHA256Managed的256位散列)
BitConverter.ToInt64
只使用8個字節來產生該值,因此數組中的任何額外字節將被忽略。
如果要存儲完整的256位散列,則需要使用不同的數據類型。
如果您只想使用散列的前64位,那通常很好。整個哈希碼應該受到您計算哈希值的每個字節的影響,因此只有一部分哈希值本身仍然會生成一個好的哈希值。散列衝突自然會有更大的風險,但64位通常足以使它們變得非常罕見。