123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- //
- // MD5.m
- // IOSDuoduo
- //
- // Created by 东邪 on 14-5-23.
- // Copyright (c) 2014年 dujia. All rights reserved.
- //
- #import "MD5.h"
- #import <CommonCrypto/CommonDigest.h>
- @implementation MD5
- +(NSString *) getMD5:(NSString *)originalString {
- const char *cStr = [originalString 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]
- ]uppercaseString];
- }
- //使用MD5加密
- +(NSString*)fileMD5:(NSString*)path
- {
- NSFileHandle *handle = [NSFileHandle fileHandleForReadingAtPath:path];
- if( handle== nil ) return nil; // file didnt exist
-
- 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;
- }
- @end
|