閱讀meta後,我相信這是這個問題的最佳位置(我不確定它是否屬於這裏,因爲它不是特定的代碼)。 現在的問題是:Apple的Swift編程語言是否適合密碼學密集型iOs/MAC OS X項目? 爲什麼這個問題關注我是swift與Objective-C兼容,但我不確定它與C++ crypto庫的兼容性如何?我正在考慮在應用程序的加密端使用C++庫(例如:Crypto ++)。有沒有人在一個快速的應用程序中集成了這樣一個庫?是可行的還是最好的選擇是爲該庫執行Objective-C++包裝並使用Objective-C中的包裝?C++ crypto庫在Apple Swift中使用
0
A
回答
2
Swift目前沒有辦法直接與C++交互。你必須用ObjC++實現來包裝所有的ObjC接口。如果你打算使用Crypto ++(如果你需要CommonCrypto中沒有的算法,那很好),那麼我個人會用純C++編寫所有低級的東西,並且只需在Swift中使用UI就可以使用一個小的使用ObjC++接口層讀取結果。
我總是建議最大限度地減少ObjC++的佔用空間,所以即使你在ObjC而不是Swift中編寫它,我的建議也是一樣的。在純ObjC中編寫UI代碼,在C++中編寫引擎,並在它們之間放置一個薄薄的ObjC++層。 (注意,我對ObjC++有很強烈的偏見,因爲我已經被糟糕的工具支持和性能影響多次燒燬了。每次發佈clang都會使ObjC++更好一些,有可能某一天我的偏差並不準確,而ObjC++將會是一種很好的語言。但我認爲今天不是這樣,我認爲Swift ++會在這之前是真的。)
相關問題
- 1. 直接在Swift中使用Apple框架
- 2. 在Objective-C項目中使用Swift庫
- 3. 在swift中使用widevine庫
- 4. 在Xamarin中使用Swift庫
- 5. 如何使用Crypto ++庫創建HMAC 256?
- 6. 如何在Apple Maps中使用Swift繪製GeoJSON作爲覆蓋使用Swift 3
- 7. 使用Win32 Crypto API
- 8. 在C中使用Apple Scripting Bridge
- 9. 在swift中使用C++ DLL
- 10. 在Swift中使用extern「C」?
- 11. 在Swift中使用Apple的可達性類
- 12. 在Apple Swift中連接NSString和Int
- 13. 我可以在xcode 6中使用Objective-C庫使用swift
- 14. 在Swift中使用CFNotificationCallback,或者在Swift中使用@convention(c)塊
- 15. Apple Swift覆蓋Openstack swift包
- 16. 使用方法PBKDF2WithHmacSHA1在目標C或Apple Swift代碼中加密
- 17. Apple TLS與Objective-C和Swift的區別
- 18. Poco C++ Crypto靜態庫用法在XCode上生成錯誤
- 19. 如何在C++中使用openssl crypto lib頭文件?
- 20. 如何在Angular2中使用'crypto'模塊?
- 21. 無法在Swift框架中導入Common Crypto
- 22. 在離子項目中使用Swift庫
- 23. C++在mac上使用linux庫(x86_64-apple-darwin上的elf64-x86-64)
- 24. 使用C庫導入Swift模塊
- 25. 如何使用MinGW在Linux上構建Crypto ++庫?
- 26. 與clang一起使用Crypto ++
- 27. 供應標準庫(crypto/tls)
- 28. 在C++中使用C庫
- 29. 在C++中使用C#庫
- 30. 在C#中使用C++庫
最簡單的事情就是使用一個C庫,因爲Objective-C是C的超集。也就是說,它們提供了[它們自己的一組加密庫和服務](https://developer.apple.com/library/mac/documentation/security/Conceptual/cryptoservices /Introduction/Introduction.html#//apple_ref/doc/uid/TP40011172-CH1-SW1),你應該先看看那些。 – 2014-09-28 10:59:38
問題是我不希望蘋果提供的默認加密。事實上,只有在C++加密庫中才有99%的需求。 (事情像蛇和布萊克2,NTRU)。大多數C庫都沒有這些算法。 – user1028028 2014-09-28 11:04:01
你可以用C編寫包裝器,然後用Swift包裝到C包裝器中。這應該工作。 – Marcin 2015-02-13 10:57:30