Hi guys, I need to generate a hash from a file, the hash algorithm is here: http://thesubdb.com/api/
I'm trying to implement it on Objective-C but I'm having really trouble on it... This is my current implementation: // // SMSubdbSource.m // Subtitle Master // // Created by Wilker LĂșcio da Silva on 6/23/11. // Copyright 2011 __MyCompanyName__. All rights reserved. // #import "SMSubdbSource.h" #import <CommonCrypto/CommonDigest.h> @implementation SMSubdbSource +(NSString *)md5:(NSString *)str { const char *cStr = [str UTF8String]; unsigned char result[16]; CC_MD5(cStr, (unsigned int) strlen(cStr), result); return [NSString stringWithFormat: @"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X", result[0], result[1], result[2], result[3], result[4], result[5], result[6], result[7], result[8], result[9], result[10], result[11], result[12], result[13], result[14], result[15] ]; } +(NSString *)generateHashFromPath:(NSString *)path { const NSUInteger CHUNK_SIZE = 65536; NSFileHandle *file = [NSFileHandle fileHandleForReadingAtPath:path]; if (file == nil) return nil; unsigned long fileSize = [[[NSFileManager defaultManager] attributesOfItemAtPath:path error:nil] fileSize]; NSMutableData *fileData = [[NSMutableData alloc] initWithCapacity:CHUNK_SIZE * 2]; [fileData appendData:[file readDataOfLength:CHUNK_SIZE]]; [file seekToFileOffset:MAX(0, fileSize - CHUNK_SIZE)]; [fileData appendData:[file readDataOfLength:CHUNK_SIZE]]; [file closeFile]; NSString *dataString = [[NSString alloc] initWithData:fileData encoding:NSASCIIStringEncoding]; return [[SMSubdbSource md5:dataString] lowercaseString]; } @end It works well if file only contains ASCII simple chars, but the real files (that contains video binary data) generates wrong hash... I mean the problem should be when trying to generate the string and MD5 digest from it... How I can make it work correctly? --- Wilker LĂșcio http://about.me/wilkerlucio/bio Kajabi Consultant +55 81 82556600 _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com