Newer
Older
TUve-iPhone / Classes / NSData-Hashing.m
@phausler phausler on 18 Sep 2008 858 bytes NSData MD5 hash support
//
//  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