iOS 4中有CC_MD5()和CC_SHA1()吗?

我期待在我的iOS应用程序中使用针对iOS 4及更高版本的MD5或SHA-1。 我使用CommonCrypto / CommonDigest.h中的CC_MD5()和CC_SHA1()函数。 它似乎在运行iOS 4.1和iPhone 4.0模拟器的iPhone上运行良好,但我担心,因为在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); 

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

这些function是否允许在iOS 4应用程序中使用,如果有的话,是否有任何正式的参考来certificate这一事实?

在path中的头文件中: /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); 

所以,苹果现在告诉我们它支持:-)

CC_SHA1也可以工作,我现在已经用4.3了。

CC_MD5在iOS 4.3 工作。 我认为它必须在iOS 5之前没有logging。

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

如果不可用,您的应用程序将会崩溃,debugging器会让您知道哪些function在这个iOS版本上不可用。 你将不得不testing一个更大的版本。

如果它在真实的设备上工作,这些function是可用的。 🙂