2017-08-03 34 views

回答

5

System.Security.Cryptography.Aes是一個抽象類,僅表示AES-ness的概念。 AesManaged,AesCryptoServiceProviderAesCng是託管代碼中AES的具體實現,使用Windows CAPI以及使用Windows CNG(分別)。 (在.NET Core上有一個謊言:AesManaged和AesCryptoServiceProvider都只是使用一個使用Windows CNG,macOS Security.framework或OpenSSL的automagic隱藏類)

如果你不清楚你想要哪一個,你想通過Aes.Create()創建一個實例,只使用基類型。唯一的例外是在使用AesCng時使用命名密鑰(這是非常罕見的)。

1

AES是抽象基類而AESManaged是基於Rijndael的對稱算法有AES的託管實現一個固定的塊大小和迭代次數。