Является ли ядро ​​MD5 га sh детерминированным c дюйм. NET? - PullRequest
0 голосов
/ 28 января 2020

У меня есть сценарий использования, аналогичный описанному в этой статье: Вычисление контрольной суммы MD5 для файла

Поскольку в статье, по-видимому, упоминается. NET Framework и я использую. NET core, я хотел бы узнать больше о хешах в. NET core. После небольшого исследования я натолкнулся на заявление в документации Microsoft. System.String . О функции GetHashCode () говорится следующее:

Сам код ha sh не гарантированно стабилен. Коды Ha sh для идентичных строк могут отличаться в разных реализациях. NET, в версиях. NET и в разных платформах. NET (например, 32-разрядных и 64-разрядных) для одной версии. NET. В некоторых случаях они могут даже отличаться в зависимости от области приложения. Это подразумевает, что два последующих запуска одной и той же программы могут возвращать разные коды ha sh.

Так как я не очень знаком с хэшами и поведение происходит только в ядре. NET, выше Заявление беспокоило меня. Можно ли использовать MD5 га sh для хранения контрольной суммы в базе данных, и эта контрольная сумма рассчитывается одинаково на каждой платформе? Или это похоже на GetHashCode (), и результат может быть разным на разных платформах или даже при каждом выполнении программы?

...