IOS开发中的MD5计算

#import

  +(NSString*) md5:(NSString*) str {

  const char *cStr = [str UTF8String];

  unsigned char result[CC_MD5_DIGEST_LENGTH];

  CC_MD5( cStr, 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]

  ];

  }

  #define CHUNK_SIZE 1024

  +(NSString *)file_md5:(NSString*) path {

  NSFileHandle* handle = [NSFileHandle fileHandleForReadingAtPath:path];

  if(handle == nil)

  return nil;

  CC_MD5_CTX md5_ctx;

  CC_MD5_Init(&md5_ctx);

  NSData* filedata;

  do {

  filedata = [handle readDataOfLength:CHUNK_SIZE];

  CC_MD5_Update(&md5_ctx, [filedata bytes], [filedata length]);

  }

  while([filedata length]);

  unsigned char result[CC_MD5_DIGEST_LENGTH];

  CC_MD5_Final(result, &md5_ctx);

  [handle closeFile];

  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]

  ];

  }


你可能感兴趣的:(ios,String,File,Path,import)