阅读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