Поиск кросс-платформенной / портативной программы, которая извергает криптографические хеши файла

Я ищу программу, которая должна быть источником, портативным через Windows и Linux (для, например, ANSI C, и т.д.), который генерирует криптографические хеши как MD5, SHA, и т.д. а также CRC32 файла/списка файлов передал ему.

Я буду выполнять этот исполняемый файл на терабайтах файлов, генерируя их SHA, MD5 и CRC32 (и больше в будущем) подписи, таким образом, скорость будет важна.

То, что я имел в уме, точно, что ReHash является ReHash, ReHash.

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

Быть никаким экспертом в криптографии и просто поиск решения для черного квадрата, которое просто дает мне хеши, которые я хочу, не требуя меня к, больше, чем, компилируют некоторый код, я задавался вопросом, нет ли ничего лучше?

Я мог, конечно, записать программу связующего звена в Python, который будет использовать криптомодули для генерации то, что я хочу, но я предпочел бы скомпилированный двоичный файл с языка как C.

Я буду выполнять этот исполняемый файл на терабайтах файлов, генерируя их SHA, MD5 и CRC32 (и больше в будущем) подписи и обрабатывая все это из кода Python, таким образом, что-то совместимое с Python было бы предпочтено, но не за счет C как скорость.

1
задан 27.10.2015, 11:31

2 ответа

Python crypto операции реализован в собственном коде (скомпилированный от C). Так как Вы хотите значения в программе Python, использование их будет более простым.

Linux идет с утилитами для вычислений контрольной суммы (cksum, md5sum, sha1sum...). Также - большинство других нельдов. Существует несколько портов Windows утилит GNU (который является тем, что Вы входите в Linux): Cygwin, Gnuwin32, Msys... Вам будут нужны достаточно недавние утилиты, если Вы захотите получить SHA-256 и SHA-512.

Существует несколько ANSI C реализации с очень либеральными лицензиями различных криптографических алгоритмов, плавающих вокруг, часто не собранный в единственном распределении. Вы могли искать их и протестировать их на маленьком входе для проверки их надежности.

В соответствии с Windows, удостоверьтесь, что Вы правильно рассматриваете файлы как двоичный файл или текст, как желаемый, так как контрольные суммы определяются по потокам байтов, не потокам строки. (Обычно Вы хотели бы открыть файлы в режиме двоичного счета, но если у Вас будет текстовый файл, который был транскодирован к окончаниям строки Windows, то необходимо будет открыть его как текст для инвертирования эффекта.) Под любой ОС, удостоверьтесь, что Вы не делаете никакого перевода кодирования при открытии файла.

Так как скорость очень важна для Вас, соберите все реализации, можно найти и сравнить их на входе умеренного размера (несколько мегабайтов). Различные реализации могут дать лучшую скорость на различной архитектуре. 64-разрядные внедрения, вероятно, будут быстрее, куда можно выполнить их вообще.

2
ответ дан 12.12.2019, 09:17

OpenSSL имеет инструменты, которые вычисляют хеши. cygwin (http://www.cygwin.com/) проект имеет openssl инструменты. Хотя это будет немного медленнее, чем чистое Приложение Windows из-за cygwin слоя, Вы также получите среду, где можно написать сценарий поколения хеша.

2
ответ дан 12.12.2019, 09:17

Теги

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