Apple Swift中使用的C++加密库

C++ crypto library use in Apple Swift

本文关键字:C++ 加密 Swift Apple      更新时间:2023-10-16

在阅读了meta之后,我认为这是回答这个问题的最佳位置(我不确定它是否属于这里,因为它与特定代码无关)。问题是:苹果的Swift编程语言是否适合加密密集型iOs/MAC OS X项目?为什么这个问题让我担心,swift与objective-C是相互兼容的,但我不确定它与C++加密库的兼容性如何?我正在考虑为应用程序的加密端使用C++库(例如:crypto++)。有人在swift应用程序中集成了这样的库吗?它可行吗?或者最好的选择是为库做一个Objective-C++包装器并使用Objective-C中的包装器吗?

Swift目前没有办法直接与C++交互。您必须使用ObjC++实现来包装ObjC接口中的所有内容。如果你要使用Crypto++(如果你需要CommonCrypto中不可用的算法,这很好),那么我个人会用纯C++编写所有底层的东西,并在Swift中使用一个小的ObjC++接口层来读取结果。

我总是建议尽量减少你的ObjC++足迹,所以即使你用ObjC而不是Swift写这篇文章,我的建议也是一样的。用纯ObjC编写UI代码,用C++编写引擎,并在它们之间放置一个薄薄的ObjC++层。

(请注意,我对ObjC++有强烈的偏见,因为我已经被它糟糕的工具支持和性能影响折磨了太多次。clang的每一次发布都让ObjC++变得更好了,也许有一天我的偏见会不准确,ObjC++将是一种很好的语言。但我不认为这是今天,我认为Swift++无论如何都会在这之前到来。)。)