iPhone:ios 4.3上的SHA1哈希
在我的应用程序中,我正在使用以下函数来处理NSString中的SHA1哈希:iPhone:ios 4.3上的SHA1哈希,iphone,hash,sha1,Iphone,Hash,Sha1,在我的应用程序中,我正在使用以下函数来处理NSString中的SHA1哈希: -(NSString *)stringToSha1:(NSString *)str{ const char *cstr = [str cStringUsingEncoding:NSUTF8StringEncoding]; NSData *data = [NSData dataWithBytes:cstr length:str.length]; uint8_t digest[CC_SHA1_DI
-(NSString *)stringToSha1:(NSString *)str{
const char *cstr = [str cStringUsingEncoding:NSUTF8StringEncoding];
NSData *data = [NSData dataWithBytes:cstr length:str.length];
uint8_t digest[CC_SHA1_DIGEST_LENGTH];
CC_SHA1(data.bytes, data.length, digest);
NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];
for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++)
[output appendFormat:@"%02x", digest[i]];
return output;
}
它说:
dyld:惰性符号绑定失败:无法解析中的符号\u CC\u SHA1
因为无法加载依赖的动态库#3
dyld:无法解析中的符号_cc35; u SHA1,因为无法加载依赖的dylib#3
关于如何让它在我的iPad4.3.5设备上工作,有什么想法吗 如果查看头文件,您将看到:
extern unsigned char *CC_SHA1(const void *data, CC_LONG len, unsigned char *md) __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_5_0);
\uuuuuuOSX\uAvailable\u启动(…)
意味着此功能仅在OS X 10.4+和iOS 5.0+上可用。这就是你的应用程序崩溃的原因。我自己找到了解决方案,但我不知道它为什么会工作
从我的项目clean和build中删除了框架“libcommonCrypto.dylib”,它就工作了
在IOS 4.1和4.3上测试,效果非常好。是的,我见过。另一方面,有几个地方他们说它应该适用于4.3 nontheless,所以这很奇怪:\参见这里的一个例子:如果这是一个解决方案,那么继续并将其标记为答案,即使它是您自己的。
extern unsigned char *CC_SHA1(const void *data, CC_LONG len, unsigned char *md) __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_5_0);