在我之前的问题(使用文件后在c#中没有释放RAM)中,我问过一种清除RAM的方法。有人建议使用流而不是将其读入变量。我发现使用流但不使用AesGcm加密/解密大文件(.NET)。问题是我找不到如何在流中使用AesGcm。AesGcm.decrypt仅在密文字段中接受Byte [],而AesManaged没有CihperMode.GCM。
当前,解密800MB文件时,解密需要4GB的内存。如何在不填充RAM的情况下使用AesGcm解密文件?
谢谢。
我会说AesGcm
(可能AesCcm
).NET中不支持“流”模式,这似乎是共识(https://crypto.stackexchange.com/questions/51537/delayed-tag-checks-in-aes- gcm-for-streaming-data)是您不应该创建流模式AesGcm
。我将添加关于此https://github.com/dotnet/runtime/issues/27348的另一参考。我不是密码学专家,因此我不清楚流式传输加密文档并仅在最后检查其身份验证标签存在哪些问题。
如果可能,您应该更改算法。否则,可以找到其他解决方案。Bouncycastle库支持AesGcm。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句