2014-10-13 2 views
1

Мне нужно генерировать 256-битный ключ для шифрования AES в C# для приложения Windows Store. Извлечен следующий код и получает исполнение. Пожалуйста, укажите мне, где я делаю неправильно.Сгенерировать ключ AES в C# для приложения для магазина Windows

public string GenAESkey() 
     { 

      UInt32 keySize = 32; 
      CryptographicKey key; 
      SymmetricKeyAlgorithmProvider Algorithm = SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.AesEcb); 
      IBuffer keymaterial = CryptographicBuffer.GenerateRandom((keySize + 7)/8); 
      try 
      { 
       key = Algorithm.CreateSymmetricKey(keymaterial); 
       return key.ToString(); 
      } 

      catch 
      { 
       return null; 
      } 

Ошибка: «Значение не входит в ожидаемый диапазон». @ команда Algorithm.CreateSymmetricKey(keymaterial);.

+2

Угадайте что? Ключ AES-256 - 256 бит. Это 32 байта, а не 32 бита. Кроме того, я был бы удивлен, если key.ToString() сделает что-нибудь полезное. –

+0

@GregS: Спасибо. Это разрешило It .. Мне нужно преобразовать его в строку, потому что Iam передает его некоторым функциям, которые уже написаны с помощью строкового аргумента. –

ответ

1

мой плохой. Проблема в этом.

UInt32 keySize = 32; 

Изменено его

UInt32 keySize = 256; 

и Evrything хорошо

Смежные вопросы