Во сколько раз вычислительная сложность алгоритма MD5 выше по сравнению с алгоритмом CRC32?
=============================================================================================

 Или иначе, во сколько раз алгоритм MD5 медленнее алгоритма CRC32?  

Я знаю, что MD5 – это алгоритм хэширования, а CRC32 – это алгоритм контрольной суммы для проверки целостности данных при передаче или записи.  

Сейчас контроль целостности данных (фото по ~ 1МБ) при передаче в базу MySQL из 1С осуществляется с помощью алгоритма MD5 и есть подозрение, что избыточная вычислительная сложность алгоритма MD5 замедляет процесс передачи данных и нагружает процессор сервера. Мне нужно понять есть ли смысл MD5 заменить на CRC32 и каков будет выигрыш в производительности? Просто так экспериментировать не хочу, так как эта доработка стоит денег. Спасибо! 

 Во много!  

Сами посудите, в CRC32 используется только модульная арифметика и сдвиговые операции в 32х битном регистре. Для того же MD5 тоже используются простые операции, но это происходит в четырёх 32х битных регистрах, в 32х циклах. Так что 4 * 32 = 128. Именно во столько раз MD5 медленнее CRC32.  

И это только на вскидку, так как всех деталей реализации одного и другого алгоритма я не помню. 

 В статье [Hash Functions all the way down](https://aras-p.info/blog/2016/08/02/Hash-Functions-all-the-way-down/) приводится сравнение функций хеширования с графиком.  
  

> Мне нужно понять есть ли смысл MD5 заменить на CRC32 и каков будет выигрыш в производительности?

  

Я сомневаюсь что именно вычисление MD5 является виновником замедления. Причину нужно искать в другом месте.  

Используйте профилирование кода, обращений к СУБД и операции ввода/вывода.  

Там еще очень возможна неэффективная работа с памятью из-за работы с фотографиями.