在iOS中使用MD5加密較簡單璧微,需要引入頭文件CommonCrypto/CommonDigest.h
,我們單獨新建一個用于MD5加密的類Encryption
硬梁,此類繼承NSObject
前硫。
Encryption.h
文件如下:
#import <Foundation/Foundation.h>
@interface Encryption : NSObject
//md5加密方法
+ (NSString *)md5EncryptWithString:(NSString *)string;
@end
Encryption.m
文件如下:
#import "Encryption.h"
#import <CommonCrypto/CommonDigest.h>
//秘鑰
static NSString *encryptionKey = @"nha735n197nxn(N′568GGS%d~~9naei';45vhhafdjkv]32rpks;lg,];:vjo(&**&^)";
@implementation Encryption
+ (NSString *)md5EncryptWithString:(NSString *)string{
return [self md5:[NSString stringWithFormat:@"%@%@", encryptionKey, string]];
}
+ (NSString *)md5:(NSString *)string{
const char *cStr = [string 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;
}
@end
調(diào)用Encryption.h
中的加密方法進行測試,代碼如下:
//調(diào)用Encryption中的加密方法
NSLog(@"-----%@", [Encryption md5EncryptWithString:@"hello"]);
調(diào)試窗口成功輸出打印信息:
注意:在實際工程中荧止,我們不會把 Encryption.m
中的秘鑰暴露出來屹电,因此實際工程中需要把 Encryption
類打包成靜態(tài)庫,只暴露 .h
文件用于使用.