对一长串NSString数据进行MD5、SHA1加密,其做法相对较为简单,利用CC_MD5、CC_SHA1,导入如下库文件:
#import <CommonCrypto/CommonDigest.h>
MD5Util.h
#import <UIKit/UIKit.h>
#import <CommonCrypto/CommonDigest.h>
@class MD5Util;
/**
* MD5 工具类
**/
@interface MD5Util : NSObject
/**
* MD5 加密
**/
+(NSString *)md5:(NSString *)data;
@end
MD5Util.m
#import <Foundation/Foundation.h>
#import "MD5Util.h"
@implementation MD5Util
+ (NSString *)md5:(NSString *)data{
const char *cStr = [data UTF8String];
unsigned char digest[CC_MD5_DIGEST_LENGTH];
CC_MD5(cStr, (CC_LONG)strlen(cStr), digest);
NSMutableString *result = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
[result appendFormat:@"%02X", digest[i]];
}
return [result lowercaseString];
}
@end
SHA1Util.h
#import <UIKit/UIKit.h>
#import <CommonCrypto/CommonDigest.h>
@class SHA1Util;
/**
* SHA1工具类
**/
@interface SHA1Util : NSObject
/**
* SHA1加密
**/
+(NSString *)sha1:(NSString *)data;
@end
SHA1Util.m
#import <Foundation/Foundation.h>
#import "SHA1Util.h"
@implementation SHA1Util
+ (NSString *)sha1:(NSString *)data{
NSData *cStr = [data dataUsingEncoding:NSUTF8StringEncoding];
uint8_t digest[CC_SHA1_DIGEST_LENGTH];
CC_SHA1(cStr.bytes,(unsigned int)cStr.length,digest);
NSMutableString *result = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH];
for (int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) {
[result appendFormat:@"%02x",digest[i]];
}
return [result lowercaseString];
}
@end