Самая быстрая функция Sha1 (Linux, до 2 ГБ файлов) - PullRequest
3 голосов
/ 13 марта 2009

Существует ли какая-либо реализация командной строки linux, которая работает исключительно хорошо для генерации sha1 на больших файлах (<2 ГБ)? </p>

Я поэкспериментировал с 'openssl sha1', и для получения sha1 для файла объемом 2 ГБ требуются минуты: /.

Ответы [ 5 ]

7 голосов
/ 13 марта 2009

На моем компьютере для файла объемом 1 ГБ с достаточным объемом памяти для кэширования всего файла в памяти после первого запуска:

sha1sum: 3.92s
openssl sha1: 3.48s
python hashlib.sha1: 3.22s

Требуется минута, чтобы получить sha1 для файла 2 ГБ

Там что-то не так, если только вы не используете невероятно медленное старое оборудование. Даже при первом запуске, когда файл считывался прямо с диска, на моем компьютере требовалось всего лишь 20 синглов "openssl sha1". У вас вообще проблемы с медленным вводом / выводом?

3 голосов
/ 18 января 2012

Если вам специально не нужен sha1, но вы ищете контрольную сумму больших файлов, Sha512sum будет быстрее для больших файлов, так как он читает в блоках большего размера

3 голосов
/ 20 марта 2009

Я не думаю, что алгоритм SHA можно оптимизировать по размеру, поскольку он работает с блоками фиксированного размера, и вычисления не могут выполняться параллельно. Кажется, что самая быстрая реализация для маленького файла также будет самой быстрой для большого файла.

3 голосов
/ 13 марта 2009

Ваша проблема, скорее всего, дисковый ввод-вывод. Базовая реализация SHA1 на старом 2,0 ГГц процессоре Core Duo может обрабатывать / dev / zero со скоростью 100 МБ / с - быстрее, чем большинство жестких дисков, обычно сопряженных с такой системой.

Покажите нам скорости, которые вы сейчас видите (и на каком аппаратном обеспечении).

1 голос
/ 13 марта 2009

sha1sum - это то, что я бы использовал для вычисления контрольных сумм SHA-1 ... он предназначен для выполнения ровно одной вещи, поэтому я надеюсь, что он сделает это максимально быстро. У меня нет 2ГБ файлов для сравнения: - (

РЕДАКТИРОВАТЬ : После некоторых тестов на ISO-образе похоже, что ограничивающим фактором для моей системы является скорость дискового ввода-вывода - не удивительно, хотя я чувствую себя немного глупо, если не думать об этом раньше. После исправления кажется, что openssl примерно в два раза быстрее, чем sha1sum ...

...