use*_*567 7 iphone md5 objective-c
我想将一个短字符串转换为md5哈希,我发现了几个关于它的帖子,但没有人工作.这是我发现的最简单的例子.我有这个错误
函数CC_MD5的隐式声明在C99中无效
- (NSString *) md5:(NSString *) input
{
const char *cStr = [input UTF8String];
unsigned char digest[16];
CC_MD5( cStr, strlen(cStr), digest ); // This is the md5 call
NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
[output appendFormat:@"%02x", digest[i]];
return output;
}
Run Code Online (Sandbox Code Playgroud)
UPDATE 我添加了#import,当我调用这样的方法时它工作正常:
[self md5:@"admin"];
Run Code Online (Sandbox Code Playgroud)
,我得到正确的md5哈希.但是当我这样做的时候
[self md5:userId];
Run Code Online (Sandbox Code Playgroud)
我收到一个错误,
[NSDecimalNumber UTF8String]:无法识别的选择器发送到实例0x4d3e280但是userId不是十进制,他包含facebook id,但它被声明为NSString
NSString *userId;
@property(retain,nonatomic) NSString *userId;
Run Code Online (Sandbox Code Playgroud)
zap*_*aph 26
因为没有看到CC_MD5的声明.
在项目中包含安全框架
#import <CommonCrypto/CommonDigest.h>
Run Code Online (Sandbox Code Playgroud)