AES - это имя, которое NIST дал Rijndael ...
аюсь реализовать шифрование AES в моем приложении. У меня есть следующий код для создания хешированной версии пароля пользователя.
PasswordDeriveBytes passwdHash = new PasswordDeriveBytes( password, salt,
"SHA1", 128 );
byte[] keyBytes = passwdHash.CryptDeriveKey( "AES", "SHA1",
192, iv );
Вторая строка бросаетSystem.Security.Cryptography.CryptographicException
с сообщением об ошибкеObject identifier (OID) is unknown
, Я использовал Reflector, чтобы убедиться, что ошибка генерируется, потому чтоCryptDeriveKey()
не нравится имя алгоритма "AES" (я используюAesCryptoServiceProvider()
выполнить шифрование). Я попытался изменить имя на «AESManaged», «AES192» и «Rijndael», но все они выдают одно и то же исключение.
Как мне заставить это работать? Или есть альтернативный метод получения байтов ключа? Кроме того, есть ли документация о том, что разрешенные строки имен алгоритма? Я не могу найти ничего в документах MSDN для этой функции.
Я использую Visual Studio 2008 и целевой .NET Framework 3.5
Заранее спасибо за помощь!