我在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的概念。 AesManagedAesCryptoServiceProviderAesCng是托管代码中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/

10-08 21:47