我需要創建一個用於加密/解密文件的Windows Mobile應用程序(WinMo 6.x - C#)。但是,我有責任編寫AES-128加密算法和XTS作爲操作模式。 RijndaelManaged只是不削減它:(非常慢比DES和3DES CryptoServiceProviders:OC++ .NET DLL與C#託管代碼? (文件加密AES-128 + XTS)
我知道這一切都取決於我在以最有效的方式編寫算法有多好。(是的,我的自我有要從頭開始寫,但我可以看看@其他實現)
然而,不寫C++ .NET的DLL創建加密/解密算法+所有的文件處理和利用它從C#有一個顯着的性能優勢 OVER在完全託管的C#代碼中編寫加密算法+文件處理?
如果我使用C++ .NET創建加密算法,我應該使用MFC智能設備DLL還是ATL?有什麼不同,對我選擇哪一個有影響?我可以只添加從C#的C + + DLL的引用,或者我應該使用P/Invoke?
我比C++更能勝任C#,但性能起着主要作用,因爲我已經說服了我的講師AES是一種非常有效的資源受限設備加密算法。
感謝名單一堆:)
Thanx :)所以即使我用C++編寫(MFC或ATL)它仍然被轉換爲IL?無論如何,我可以編寫一個本地C++ DLL的加密+文件處理,可以從C#中使用? – 2010-05-21 14:20:14
@Ranhiru:是的,但你必須在託管/非託管代碼邊界上進行P/Invoke。 – 2010-05-21 14:22:29
所以一個非本地的C++。DLL(MFC或ATL)只能作爲參考添加,因爲它可以用於C#DLL?並且一個本地C++ DLL必須被P/Invoke使用。我是否正確?我應該用什麼樣的項目爲智能設備編寫本地C++ DLL?對不起,如果這是混淆:( – 2010-05-21 14:27:32