Как я написал в заголовке.
Если небезопасно использовать getHashCode() в вашем приложении, зачем его использовать? (для строк и целых чисел)
Я хочу использовать его для пересечения методов и исключения методов в моделях Linq
или создать свой собственный класс IEqualityCompare.
Это похоже на шанс - если он не на 100% безопасен?
Или я что-то пропустил?
Как указано в методе String.GetHashCode в https://learn.microsoft.com/
Важно
Если два строковых объекта равны, метод GetHashCode возвращает идентичные значения. Однако для каждого уникального строкового значения не существует уникального значения хеш-кода. Разные строки могут возвращать один и тот же хеш-код.
Сам по себе хеш-код не может быть стабильным. Хэш-коды для одинаковых строк могут различаться в разных реализациях .NET, в разных версиях .NET и на разных платформах .NET (например, 32-разрядных и 64-разрядных) для одной версии .NET. В некоторых случаях они могут даже различаться в зависимости от домена приложения. Это означает, что два последующих запуска одной и той же программы могут возвращать разные хэш-коды.
В результате хеш-коды никогда не должны использоваться за пределами домена приложения, в котором они были
созданы, их никогда не следует использовать в качестве ключевых полей в коллекции и никогда не следует сохранять.
Наконец, не используйте хеш-код вместо значения, возвращаемого функцией криптографическую хеш-функцию, если
вам нужен криптостойкий хэш. Для криптографических хэшей используйте класс, производный от класса
System.Security.Cryptography.HashAlgorithm или System.Security.Cryptography.KeyedHashAlgorithm.
Для получения дополнительной информации о хеш-кодах см. Object.GetHashCode.
Подробнее здесь: https://stackoverflow.com/questions/592 ... why-use-it
Если уникальность getHashCode() для строки или целого числа не гарантирована, зачем его использовать? ⇐ C#
Место общения программистов C#
1760181021
Anonymous
Как я написал в заголовке.
Если небезопасно использовать getHashCode() в вашем приложении, зачем его использовать? (для строк и целых чисел)
Я хочу использовать его для пересечения методов и исключения методов в моделях Linq
или создать свой собственный класс IEqualityCompare.
Это похоже на шанс - если он не на 100% безопасен?
Или я что-то пропустил?
Как указано в методе String.GetHashCode в https://learn.microsoft.com/
Важно
Если два строковых объекта равны, метод GetHashCode возвращает идентичные значения. Однако для каждого уникального строкового значения не существует уникального значения хеш-кода. Разные строки могут возвращать один и тот же хеш-код.
Сам по себе хеш-код не может быть стабильным. Хэш-коды для одинаковых строк могут различаться в разных реализациях .NET, в разных версиях .NET и на разных платформах .NET (например, 32-разрядных и 64-разрядных) для одной версии .NET. В некоторых случаях они могут даже различаться в зависимости от домена приложения. Это означает, что два последующих запуска одной и той же программы могут возвращать разные хэш-коды.
В результате хеш-коды никогда не должны использоваться за пределами домена приложения, в котором они были
созданы, их никогда не следует использовать в качестве ключевых полей в коллекции и никогда не следует сохранять.
Наконец, не используйте хеш-код вместо значения, возвращаемого функцией криптографическую хеш-функцию, если
вам нужен криптостойкий хэш. Для криптографических хэшей используйте класс, производный от класса
System.Security.Cryptography.HashAlgorithm или System.Security.Cryptography.KeyedHashAlgorithm.
Для получения дополнительной информации о хеш-кодах см. Object.GetHashCode.
Подробнее здесь: [url]https://stackoverflow.com/questions/59226000/if-gethashcode-for-string-or-integer-is-not-guaranteed-to-be-unique-why-use-it[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия