我们怎么知道WinRT中的SymmetricAlgorithmNames :: AesCbc是128位还是256位?

时间:2013-07-18 06:29:19

标签: windows-8 windows-runtime winrt-xaml winrt-async

我在WinRT的数据加密实现中使用了SymmetricAlgorithmNames :: AesCbc和SymmetricAlgorithmNames :: DesCbc算法。

我需要确保这些算法至少是128位算法,这在算法名称中并不明显。如果我们使用OpenSLL(例如EVP_aes_ 128 _cfb128()),情况也是如此。

有人能告诉我 SymmetricAlgorithmNames :: AesCbc是128位还是256位还是其他什么

提前致谢。

1 个答案:

答案 0 :(得分:1)

该算法会自动使用您提供的任何大小的键。当您致电SymmetricKeyAlgorithmProvider.CreateSymmetricKey并传入IBuffer作为KeyMaterial时,该IBuffer中包含的内容将决定加密的位长度。如果传入16个随机生成的字节,那将是(16 * 8)128位,对称加密。如果传入32个字节,则会给你256个字节。

正如规范中所述,您可以使用CryptographicBuffer.GenerateRandom来获取一些安全的随机字节。

快乐的编码!