9

我希望在针对 iOS 4 及更高版本的 iOS 应用程序中使用 MD5 或 SHA-1。我使用 CommonCrypto/CommonDigest.h 中的 CC_MD5() 和 CC_SHA1() 函数。它似乎在运行 iOS 4.1 的 iPhone 和 iPhone 4.0 模拟器上运行良好,但我很担心,因为 XCode 4.2 附带的 iOS 5 SDK 中的函数声明如下:

extern unsigned char *CC_MD5(const void *data, CC_LONG len, unsigned char *md)
__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_5_0);

extern unsigned char *CC_SHA1(const void *data, CC_LONG len, unsigned char *md)
__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_5_0);

这似乎表明这些功能仅适用于 iOS 5 及更高版本。

iOS 4 应用程序中是否允许使用这些功能,如果允许,是否有任何官方参考来记录这一事实?

4

4 回答 4

2

CC_SHA1 也可以,我已经在 4.3 中使用它一段时间了。

于 2012-02-13T23:35:08.467 回答
2

在路径的头文件中:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/include/CommonCrypto/CommonDigest.h

我们可以看到 :

extern unsigned char *CC_MD5(const void *data, CC_LONG len, unsigned char *md)
__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0);

所以,Apple 现在告诉我们它是受支持的 :-)

于 2012-12-12T08:21:04.867 回答
1

CC_MD5确实适用于 iOS 4.3。我认为它在 iOS 5 之前一定是无证的。

于 2012-02-13T23:25:04.223 回答
0

了解是否有任何函数或类方法可用的最佳方法是将项目部署目标设置为您希望应用程序运行的最低 ios 版本,并在真实设备上进行测试(或在 iPhone 模拟器中,但我认为是真实设备是最好的解决方案)通过部署目标版本运行。

如果它不可用,您的应用程序将崩溃,调试器将让您知道哪些功能在此 iOS 版本上不可用。您将不得不使用更大的版本进行测试。

如果它在真实设备上工作,这些功能是可用的。:)

于 2012-07-28T16:32:22.707 回答