我正在使用SHA256Managed生成256位散列,我想将它们存储在sql server上。 BitConverter.ToInt64对此有多好?它是否忽略了额外的字节?在转换为int64之前,我应该进行一些处理以减少字节数组吗?
答案 0 :(得分:1)
BitConverter.ToInt64
仅使用8个字节来产生值,因此忽略数组中的任何额外字节。
如果要存储完整的256位散列,则需要使用不同的数据类型。
如果你只想使用散列的前64位,那通常就好了。整个哈希码应该受到计算哈希值的每个字节的影响,因此只有一部分哈希值本身仍会产生良好的哈希值。哈希冲突自然会有更大的风险,但64位通常足以使它们足够稀有。