C .NET DLL与C#托管代码? (文件加密AES-128 XTS)
作者:互联网
我需要创建一个Windows Mobile应用程序(WinMo 6.x-C#),该应用程序用于加密/解密文件.但是,我有责任编写加密算法AES-128和XTS作为操作模式. RijndaelManaged只是不削减它:(比DES和3DES CryptoServiceProviders慢得多:O
我知道这一切都取决于我以最有效的方式编写算法的能力. (是的,我本人必须从头开始编写它,但是我可以在其他实现中看一下)
但是,与使用完全托管的C#代码编写加密算法文件处理相比,编写C .NET DLL来创建所有文件处理的加密/解密算法并从C#使用它是否具有显着的性能优势?
如果我使用C .NET创建加密算法,则应该使用MFC智能设备DLL还是ATL?有什么区别,对我选择哪一个有影响?我可以只添加对C#中C DLL的引用,还是应该使用P / Invoke?
与C相比,我在C#方面相当称职,但性能起着重要作用,因为我已经使我的讲师相信AES是一种用于资源受限设备的非常有效的加密算法.
谢谢一堆:)
解决方法:
编写“托管”程序将在C或C#或VB中具有同等的性能,因为它们都可以编译为IL.
我不知道,但是如果您编写一个非托管的C类库并从托管的C#应用程序中调用它,则在p / invoke调用期间可能会失去一些性能,但您的速度提高(从非托管状态开始)可能足以证明其合理性. p /调用有同等可能会将其取消不受管理的任何潜在性能提升.
我认为,无论是通过方式还是进行测试,都无法确定.
标签:encryption,aes,dll,c,c-4 来源: https://codeday.me/bug/20191210/2098788.html