У нас есть сборка приложения на .NET Framework 4.8, и из соображений безопасности нам нужно изменить алгоритм хеширования с SHA-1 на SHA-256.
Мы находим этот алгоритм хэширования через ILSPY (как вы можете видеть на изображении).
Я также загрузил исходный код Ilspy и обнаружил, что алгоритм хеширования был получен из кода AssemblyDefinition.HashAlgorithm.
Для решения этой проблемы я попытался:
Безуспешно :(
Как мы можем изменить алгоритм хэширования dll?
Я пытался подписать dll сертификатом, запутать с помощью dotfuscator, подписать манифест. а также попробуйте это Переопределить HashAlgorithm.Create() по умолчанию но, похоже, не работает.
Да, это всего лишь ошибка, допущенная нашей командой глобальной безопасности. На сборке нет никаких проблем с безопасностью.





Вы можете указать это с помощью AssemblyAlgorithmIdAttribute вот так:
[assembly:AssemblyAlgorithmId(System.Configuration.Assemblies.AssemblyHashAlgorithm.SHA256)]
(Обратите внимание, что значение — System.Configuration.Assemblies.AssemblyHashAlgorithm, а не System.Reflection.AssemblyHashAlgorithm, что раздражает.)
Это похоже на проблему X/Y. Какая у вас проблема с безопасностью, зависящая от алгоритма хеширования сборки? Или это просто требования безопасности «никогда и нигде не использовать SHA-1», игнорирующие контекст того, как он используется?