#.net #string-hashing
#.net #хэширование строк
Вопрос:
Мне нужно вычислить хэш строки идентификатора, которая выглядит примерно так 00000E11002F68FF21B459BFA33A1BFCB50E0070011167CCBF9AD994E8AAE2BFEBEEE17EC00000000010C000011167CCBF9AD994E8AAE2BFEBEEE17EC0000F083227C000000000000E11002F68FF21B459BFA33A1.
Я собираюсь использовать хэш в качестве имени файла, в котором, помимо прочего, будет храниться код идентификатора, поскольку я не хочу использовать такую длинную строку в качестве имени файла. Хэш не обязательно должен быть абсолютно уникальным, поскольку я могу просто добавить итератор к имени файла в случае коллизии, но в то же время я не хочу, чтобы было много двух коллизий, поскольку неэффективно открывать несколько файлов для проверки точного совпадения.
String.GetHashCode()
Достаточно ли хорош для этой цели? У меня могло бы быть несколько сотен файлов в каталоге одновременно.
Комментарии:
1.
String.GetHashCode()
нельзя полагаться на одинаковую работу между разными версиями среды выполнения или даже просто между разными процессами.2. Просто создайте хэш MD5 и уменьшите его размер с помощью XOR, а затем создайте 64.