Здравствуйте, Сообщество SO Мне нужен опыт хеширования:
некоторый контекст
Я столкнулся с проблемой сравнения двух списков объектов.Один экземпляр списка находится в приложении .Net Core 2.0, а другой - в приложении .Net 4.5.2.
Чтобы сравнить два списка (убедитесь, что они совпадают в обоих приложениях), я хотел бы вычислить хэш списка и обменять его между приложениями.Чтобы вычислить хэш списка, я использую подход, описанный в этом ответе .
. Для этого вам нужен хеш-код объектов в списке, и вот тут моя проблемав: Кажется хорошо известным фактом (1) , что ядро .Net использует поведение рандомизированного хеш-кода для строк.Чтобы вычислить хеш-код моих объектов, мне нужно было бы включить хеш-коды строк.
Подводя к моему вопросу: Является ли хорошей идеей вычислить хэш строки с использованием SHA256?
Причины, по которым я хотел бы использовать его:
- Тот же размер вывода (256 бит можно интерпретировать как Int32)
- SHA всегда должен выдавать один и тот же вывод (также для будущих версий .Net / core)
- Это прощедля совместного использования между приложениями, чем для пользовательской реализации
Существуют ли более эффективные (более эффективные, простые, менее коллизионные) альтернативы?