iOS上获取文件md5的方法

来源:互联网 发布:淘宝客服沟通例子 编辑:程序博客网 时间:2024/06/07 19:56

转自:http://blog.csdn.net/hou_cocoa/article/details/6654921

由于移动设备的内存有限

需要处理文件时就得格外小心

以下是段将文件分块读出

并且计算md5值的一段函数

#import <CommonCrypto/CommonDigest.h>        NSFileHandle *handle = [NSFileHandle fileHandleForReadingAtPath:path];      if( handle== nil ) {  return nil;  }      CC_MD5_CTX md5;      CC_MD5_Init(&md5);      BOOL done = NO;      while(!done)      {          NSData* fileData = [handle readDataOfLength: 256 ];          CC_MD5_Update(&md5, [fileData bytes], [fileData length]);          if( [fileData length] == 0 ) done = YES;      }      unsigned char digest[CC_MD5_DIGEST_LENGTH];      CC_MD5_Final(digest, &md5);      NSString* s = [NSString stringWithFormat: @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",                     digest[0], digest[1],                      digest[2], digest[3],                     digest[4], digest[5],                     digest[6], digest[7],                     digest[8], digest[9],                     digest[10], digest[11],                     digest[12], digest[13],                     digest[14], digest[15]];    return s;  


0 0
原创粉丝点击