Простая замена хэша для MD5

#c# #hash

Вопрос:

У меня есть база данных, в которой изображения (байт[] — обычно менее 100 кб) хранятся в таблице. В таблице есть столбец хэша, в котором хранится хэш MD5 байтов изображения. Здесь нет никаких последствий для безопасности, он используется приложением только для быстрой проверки того, существует ли изображение уже.

Класс MD5Cng исчез из .NET 5, поэтому я хочу заменить хэш-значения сейчас, готовясь к переходу на .NET 6 позже.

Что такое простой алгоритм, который будет принимать байт[] и возвращать байт[16]?

Комментарии:

1. Возьмите первые 16 байтов другого хэша (выберите свой любимый) или используйте что-то вроде CRC

2. Я был бы искренне удивлен, если бы MD5 был удален из .NET 5.

3. Да, все еще есть в .NET 6 предварительный просмотр 3

4. static readonly MD5 md5CSP = new MD5Cng(); была строка в коде, которая больше не компилируется. и я, по-видимому, неправильно понял, что устаревшее не означает удаленное. Спасибо за быстрые ответы — я придумаю, что такое замена.

5. MD5Cng конкретно был удален в .NET Core, но вы должны использовать static readonly MD5 md5CSP = MD5.Create();

Ответ №1:

Microsoft предлагает использовать некоторые варианты алгоритма безопасного хэширования вместо MD5. Однако .NET 5 поставляется с реализацией MD5-алгоритма.