在iOS开发中,经常会使用到MD5或者其他的一些散列,来提高应用的安全性。最常用的操作就是把密码进行MD5,然后再进行传输。当然现在有很多现成的实现方式,该篇博客就来实现最简单也最常用的封装MD5的方法,使调用起来非常方便。
(1)实现一个Category叫Crypto,继承自NSString。因为我们都是把NSString进行MD5,所以写成Category调用会很方便:
在NSString+Crypto.h中实现:
#import <Foundation/Foundation.h>
@interface NSString (Crypto)
- (NSString *)toMD5;
@end
在NSString+Crypto.m中实现:
#import "NSString+Crypto.h"
#import <CommonCrypto/CommonDigest.h>
@implementation NSString (Crypto)
- (NSString *)toMD5 {
const char *cStr = [self UTF8String];
unsigned char result[CC_MD5_DIGEST_LENGTH];
CC_MD5( cStr, (CC_LONG)strlen(cStr), result );
return [NSString stringWithFormat:
@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x"