코딩하는 나귀

NSString을 확장하는 방식으로 구현한 방법입니다.

<헤더>

 #import <Foundation/Foundation.h>


@interface NSData(MD5)


- (NSString*)MD5;


@end


<구현부>

#import <CommonCrypto/CommonDigest.h>

#import "NSDataMD5.h"



@implementation NSData(MD5)



- (NSString*)MD5

{

// Create byte array of unsigned chars

    unsigned char md5Buffer[CC_MD5_DIGEST_LENGTH];


// Create 16 byte MD5 hash value, store in buffer

    CC_MD5(self.bytes, self.length, md5Buffer);


// Convert unsigned char buffer to NSString of hex values

    NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];

    for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)

        [output appendFormat:@"%02x",md5Buffer[i]];


    return output;

}



@end