Are CC_MD5() and CC_SHA1() available in iOS 4?

假如想象 提交于 2019-12-05 18:26:29

问题


I am looking to make use of MD5 or SHA-1 in my iOS application targeted at iOS 4 and later. I use the CC_MD5() and CC_SHA1() functions from CommonCrypto/CommonDigest.h. It seems to work fine on an iPhone running iOS 4.1 and in the iPhone 4.0 simulator, but I am concerned because the functions are declared as follows in the iOS 5 SDK that comes with XCode 4.2:

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);

This seems to indicate that the functions are only available with iOS 5 and later.

Are these functions allowed in an iOS 4 application, and if so, is there any official reference to document that fact?


回答1:


In the header file at path : /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/include/CommonCrypto/CommonDigest.h

we can see :

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

So, Apple now tell us it is supported :-)




回答2:


CC_SHA1 works as well, I've been using it with 4.3 for a while now.




回答3:


CC_MD5 does work in iOS 4.3. I think it must have been undocumented before iOS 5 or something.




回答4:


The best way to know if any functions or class methods are available is to set your project deployment target to the lowest ios version you want your app to work on, and test on a real device (or in the iPhone simulator but i think real device is the best solution) running through the deployment target version.

If it's unavailable, your app will crash and debugger will let you know which functions are not usable on this iOS version. You will have to test with a greater version.

If it work on a real device, these functions are available. :)



来源:https://stackoverflow.com/questions/7971827/are-cc-md5-and-cc-sha1-available-in-ios-4

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!