Самый быстрый хеш-алгоритм для текстовых данных

Вы можете использовать GitHub API. Например, https://api.github.com/repos/octocat/Hello-World/pulls/488/files

octocat является владельцем проекта, Hello-World является проектом имя и 488 - номер запроса на получение. Вы можете изменить эти значения для вашего запроса. Этот запрос возвращает массив измененных файлов JSON, а атрибут filename указывает путь к файлу.

14
задан dr. evil 21 December 2008 в 19:18
поделиться

7 ответов

Если коллизия не является грандиозным предприятием, можно взять первую букву каждого документа. Или можно использовать длину текста или строки с текстом.

9
ответ дан 1 December 2019 в 12:53
поделиться

У Paul Hsieh есть достойный, простой, быстрый, 32-разрядный SuperFastHash, который работает лучше, чем большинство существующих хеш-функций, легче понять/реализовать и кажется, что соответствует Вашим критериям.

7
ответ дан 1 December 2019 в 12:53
поделиться

Хеш FNV является известным быстрым алгоритмом хеширования. Это не криптографически безопасно, но это кажется, что Вам не нужен безопасный хеш.

4
ответ дан 1 December 2019 в 12:53
поделиться

Очень быстрая проверка должна была бы взять длину текста и XOR это с первыми 4 байтами из него и использования что как хеш. Если это достаточно хорошо, это чрезвычайно быстро потому что независимый от числа байтов файла.

1
ответ дан 1 December 2019 в 12:53
поделиться
0
ответ дан 1 December 2019 в 12:53
поделиться

Если Вы ограничиваетесь к алгоритмам, которые существуют в платформе

Действительно ли MD5 является достаточно маленьким (16 байтов)?

Меньше потребления ресурсов ЦП и Маленького места являются обычно взаимоисключающими.

http://en.wikipedia.org/wiki/Time-space_tradeoff

0
ответ дан 1 December 2019 в 12:53
поделиться

Сколько времени хеш должен содержать для? GetHashCode() довольно доступно, дает маленький ответ (4 байта), которые должны быть прекрасными (коллизии уменьшения ре) более чем 20 строк.

Однако GetHashCode() не должен быть сохранен к базе данных - она хорошо для сравнений в оперативной памяти, все же. Просто знайте, что алгоритм может измениться между платформами (и сделал между 1,1 и 2.0).

Другое преимущество этого состоит в том, что это тривиально для использования - просто используют a Dictionary<string,Something>, который будет иметь дело со всем хешированием и т.д. для Вас.

0
ответ дан 1 December 2019 в 12:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: