我在WinRT的数据加密实现中使用了SymmetricAlgorithmNames :: AesCbc和SymmetricAlgorithmNames :: DesCbc算法。
我需要确保这些算法至少是128位算法,这在算法名称中并不明显。如果我们使用OpenSLL(例如EVP_aes_ 128 _cfb128()),情况也是如此。
有人能告诉我 SymmetricAlgorithmNames :: AesCbc是128位还是256位还是其他什么?
提前致谢。
答案 0 :(得分:1)
该算法会自动使用您提供的任何大小的键。当您致电SymmetricKeyAlgorithmProvider.CreateSymmetricKey
并传入IBuffer
作为KeyMaterial
时,该IBuffer中包含的内容将决定加密的位长度。如果传入16个随机生成的字节,那将是(16 * 8)128位,对称加密。如果传入32个字节,则会给你256个字节。
正如规范中所述,您可以使用CryptographicBuffer.GenerateRandom
来获取一些安全的随机字节。
快乐的编码!