Как BitConverter.ToInt64 обрабатывает байтовый массив с 32 байтами (256-битный хэш от SHA256Managed) - PullRequest
0 голосов
/ 21 марта 2012

Я использую SHA256Managed для генерации 256-битных хэшей, и я хотел бы сохранить их на сервере sql. Насколько хорош BitConverter.ToInt64 для этого? Это игнорирует лишние байты? Должен ли я сделать некоторую обработку, чтобы уменьшить байтовый массив перед преобразованием в int64?

1 Ответ

1 голос
/ 21 марта 2012

BitConverter.ToInt64 использует только 8 байтов для получения значения, поэтому любые дополнительные байты в массиве игнорируются.

Если вы хотите сохранить полный 256-битный хеш, вам нужно использовать другие данныевведите.

Если вы просто хотите использовать только первые 64 бита хэша, это обычно просто отлично.На весь хеш-код должен влиять каждый байт, для которого вы вычислили хеш, поэтому только часть хеша все еще производит хороший хеш.Естественно, существует большой риск коллизии хэшей, но обычно достаточно 64 бит, чтобы сделать их достаточно редкими.

...