Для хеширования файла код должен прочитать весь файл, что займет некоторое время.Современный жесткий диск может работать со скоростью около 100 МБ / с (это возможно быстрее, но гораздо дороже), поэтому файл размером 2 ГБ займет не менее 20 секунд.
SHA-256не самая быстрая из хэш-функций и управляемого кода в Silverlight - не самая быстрая технология реализации.На самом деле вы можете ожидать что-то вроде 60 МБ / с с 2,4 ГГц ПК Core2 (это то, что я получаю с автономной виртуальной машиной из .NET 4.0 на моем ПК; я могу сделать это немного быстрее - скажем, 75 МБ /s - с моей собственной управляемой реализацией SHA-256).Это неплохо, но все же немного меньше скорости жесткого диска.
Если вы работаете в 64-битном режиме, вы можете попробовать SHA-512, который работает быстрее, чем SHA-256 на64-битные архитектуры (но значительно медленнее в 32-битных системах).Кроме того, вы можете попробовать использовать некоторый нативный код.Существуют и другие хэш-функции, но некоторые из них криптографически повреждены (например, MD5), поэтому, в зависимости от вашей ситуации, вы можете или не захотите их использовать.SHA-1 быстрее, чем SHA-256, поддерживается Silverlight и криптографически «ослаблен» (еще не полностью сломан, но не так надежен, как следовало бы), поэтому он не рекомендуется для новых приложений, если он используется для чего-либочто связано с безопасностью.В любом случае, вы скоро достигнете предела пропускной способности жесткого диска, независимо от того, какую хеш-функцию вы используете.