是否可以在.net framework 4.7中使用AES(256位)GCM模式加密数据?

时间:2017-09-06 05:58:15

标签: .net encryption cryptography aes aes-gcm

MSDN link提供对具体AES类的引用:

  • System.Security.Cryptography.AesCng
  • System.Security.Cryptography.AesCryptoServiceProvider
  • System.Security.Cryptography.AesManaged

但是,AesCryptoServiceProvider适用于较旧的计算机,而AesManaged未通过FIPS认证。所以唯一的选择是AesCng。 AesCng有一个名为Mode的属性,它只接受:CBC,ECB,OFB,CFB,CTS但没有GCM

  1. 此框架是否支持AES GCM?
  2. 如果是,是否有例子?
  3. 如果不是,那么我的选择是什么?

1 个答案:

答案 0 :(得分:2)

这个答案反映了上述卢克·帕克(Luke Park),巴顿·斯密(Bartonjs),蒂莫(Timo)和a·马丁·波德维斯(Maarten Bodewes)的评论。

一种选择是使用Bouncycastle C# library,它具有自己的AES自我实现以及GCM模式。查看类GCMBlockCipher,AesEngine和AEADParameters的源代码。

另一种选择是使用P / Invoke手动调用BCryptEncrypt

最后,请注意,.NET Core从3.0开始将提供支持。来源已在github中提供。