我在c#中使用AES算法进行加密和解密.我正在使用AesCryptoServiceProvider类进行加密和解密.
这是我在代码中的设置
AesCryptoServiceProvider result = new AesCryptoServiceProvider();
result.BlockSize = 128;
result.KeySize = 256;
result.Mode = CipherMode.CBC;
result.Padding = PaddingMode.PKCS7;
Run Code Online (Sandbox Code Playgroud)
我很困惑我在这里使用的代码是AES 128还是AES 256的实现.
简单的问题是如何识别您使用的是AES 256/AES 128?
我试过这个链接:http://social.msdn.microsoft.com/Forums/vstudio/en-US/ac5f4d30-343e-484e-b795-b214820a9327/aes-net-encryption-is-it-always-256-bit -AES
但我没有得到答案.
这是AES 256.数字是密钥大小.
来自维基百科:
严格地说,AES标准是Rijndael的变体,其中块大小限制为128位.
因此块大小始终为 128.
我不能指出你的任何官方文件,因为(据我所知)AES-<Number>,一直是非正式的速记.我可以在Bruce Schneier 博客文章中引用一篇研究论文:
AES是最着名和最广泛使用的分组密码.它的三个版本(AES-128,AES-192和AES-256)的密钥大小(128位,192位和256位)和轮数(分别为10,12和14)不同.如果是 ...
虽然你的客户可能不喜欢该博客文章的其余部分,因为施奈尔推荐AES-128而不是AES-256.