CryptDeriveKey (OID) неизвестен с SHA256 под Windows 7 64 бит - PullRequest
1 голос
/ 06 января 2010

Я тестирую некоторые компоненты, которые я создал с VS2008 SP1 для .NET Framework 3.5 SP1. Я получаю исключение "(OID) неизвестно" в методе PasswordDeriveBytes.CryptDeriveKey, передавая "SHA256" в качестве параметра алгоритма хэширования (я также пробовал с "SHA256Managed" и "SHA256Cng", как упоминалось здесь ). Этот метод работает нормально под XP SP3. Как я понимаю, эти алгоритмы были добавлены с пакетом обновления 1 (SP1) версии 3.5, а Windows 7 поставляется с пакетом обновления 1 (SP1) версии 3.5.

Итак, мой вопрос, как я могу получить SHA256 под Windows 7?

1 Ответ

1 голос
/ 07 апреля 2010

до http://www.codeplex.com/clrsecurity/SourceControl/changeset/view/18423 и нажмите «Скачать». б. Разархивируйте и соберите загруженный проект Security.Cryptography \ src \ Security.Cryptography.csproj VS 2008. с. Напишите программу для вызова Security.Cryptography.Oid2.RegisterSha2OidInformationForRsa (). д. Выполните эту программу, которая зарегистрирует OID SHA-256 в ОС. е. Если это 64-битная архитектура, вы должны также перекомпилировать программу для платформы x86 и выполнить ее. Это связано с тем, что Visual Studio 2008 является 32-разрядным приложением и требует внесения тех же изменений в 32-разрядный реестр.

с использованием системы; using System.Collections.Generic; использование System.Linq; используя System.Text;

namespace RegisterSHA256 { Программа класса { static void Main (строка [] args) { Console.WriteLine ("++++ Начать регистрировать SHA-256 ++++"); Security.Cryptography.Oid2.RegisterSha2OidInformationForRsa (); Console.WriteLine («++++ Конец для регистрации SHA-256 +++++»); } } }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...