2011-11-02 74 views
4

我有很多的麻煩將下面的代碼的Objective-C,任何人都可以伸出援助之手:計算MD5哈希字符串的Objective-C中

public String encodeString(String s) { 
    try { 
     // Create MD5 Hash 
     MessageDigest digest = java.security.MessageDigest.getInstance("MD5"); 
     digest.update(s.getBytes()); 
     byte messageDigest[] = digest.digest(); 

     Base64 b = null; 

     return b.encodeToString(messageDigest,1); 

    } catch (NoSuchAlgorithmException e) { 
     e.printStackTrace(); 
    } 
    return ""; 
} 
+0

這個怎麼樣:http://iphonedevelopertips.com/core-services/create-md5-hash-from-nsstring-nsdata-or-file.html – doNotCheckMyBlog

回答

10

這應該工作:

#import <CommonCrypto/CommonDigest.h> 

- (NSString *) encodeString:(NSString *) s { 
    const char *cStr = [s UTF8String]; 
    unsigned char result[CC_MD5_DIGEST_LENGTH]; 
    CC_MD5(cStr, strlen(cStr), result); 
    NSMutableString *result = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2]; 
    for(int i = 0; i < CC_MD5_DIGEST_LENGTH; ++i) { 
     [result appendFormat:@"%02x", result[i]]; 
    }  
    return [NSString stringWithString:result]; 
}