// // NSData-Hashing.m // // Created by Philippe Hausler on 9/18/08. // Copyright 2008 Philippe Hausler. All rights reserved. // #import "NSData-Hashing.h" #import <CommonCrypto/CommonDigest.h> #import "NSData-BytePacking.h" @implementation NSData (Hashing) - (NSData *)md5Hash { CC_MD4_CTX ctx; unsigned char digest[CC_MD5_DIGEST_LENGTH]; CC_MD5_Init(&ctx); CC_MD5_Update(&ctx, [self bytes], [self length]); CC_MD5_Final(digest, &ctx); return [NSData dataWithBytes:digest length:CC_MD5_DIGEST_LENGTH]; } - (NSString *)hexString { NSMutableString *hexStr = [NSMutableString string]; static char __HEHexDigits[] = "0123456789abcdef"; for(NSUInteger i = 0; i < [self length]; i++) { [hexStr appendFormat:@"%c",__HEHexDigits[[self byteAtIndex:i] >> 4]]; [hexStr appendFormat:@"%c",__HEHexDigits[digest[i] & 0x0f]]; } return hexStr; } @end