алгоритмы SHA2 (SHA256, SHA512) по многим причинам лучше, чем MD5.
- Они более устойчивы к столкновениям, что важно для больших файлов. Хотя MD5 может обнаруживать изменения в содержимом файла, более вероятно, что два больших файла могут иметь одинаковый MD5.
- Они быстрее вычислить. Это может показаться странным, но алгоритм SHA ускоряется как за счет наборов микросхем, так и за счет реализации ОС. Сами алгоритмы также легче распараллелить. В результате собственные реализации алгоритмов SHA или SHA2 в Vista + намного быстрее, чем эквивалентный алгоритм MD5.
- Они используют больший размер блока, что означает, что они могут одновременно работать с большими файловыми блоками. Время ввода-вывода может увеличиваться при обработке больших файлов.
Собственные реализации в .NET: SHA256Cng , SHA384Cng и SHA512Cng. Вместо того, чтобы создавать их явно, вы можете определить их как алгоритм по умолчанию, который будет использоваться при хешировании с использованием элемента в вашем файле конфигурации.
После этого вы можете просто написать HashAlgorithm.Create()
или SHA256256.Create()
, чтобы создать собственный экземпляр.