我需要在Windows应用程序的c#中生成一个256位密钥用于AES加密。使用了以下代码并获得了一个execption。请指出我在哪里做错了。
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);
命令。
答案 0 :(得分:1)
我的坏。问题在于此。
UInt32 keySize = 32;
将其更改为
UInt32 keySize = 256;
和evrything很好