我在C#中发现了两个与 AES和 AES相关的类,并且MSDN提供的示例代码相似,这两个类有什么区别?
Aes类
https://msdn.microsoft.com/en-us/library/system.security.cryptography.aes(v=vs.110).aspx
Aes托管类
https://msdn.microsoft.com/en-us/library/system.security.cryptography.aesmanaged(v=vs.110).aspx
最佳答案
System.Security.Cryptography.Aes
是一个抽象类,仅表示AES-ness的概念。 AesManaged
,AesCryptoServiceProvider
和AesCng
是托管代码中AES的具体实现,分别使用Windows CAPI和Windows CNG。 (在.NET Core上,这是一个谎言:AesManaged和AesCryptoServiceProvider都只使用了自动魔术隐藏类,该类使用Windows CNG,macOS Security.framework或OpenSSL(如果有))
如果您不清楚要选择哪一个,则要通过Aes.Create()
创建一个实例,并且仅使用基本类型。唯一真正的异常(exception)是将AesCng
与命名键一起使用时(这种情况非常少见)。
关于c# - Aes和AesManaged有什么区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45473884/