iOS MD5加密实现方法
使用方法 先导入头文件 #import "MD5.h"
//md5测试 NSString * md1= [MD5 md5:@"123" ]; NSLog(@"32bit=%@",md1); //16位MD5测试 NSString * md2=[MD5 getMd5_16Bit_String:@"123" isUppercase:YES]; NSLog(@"16bit=%@",md2); //32位MD5测试 NSString * md3=[MD5 getMd5_32Bit_String:@"123" isUppercase:YES]; NSLog(@"32bit=%@",md3);
自建NSObject子类 命名MD5
MD5.h
#import <Foundation/Foundation.h> @interface MD5: NSObject + (NSString *)md5:(NSString *)inPutText; + (NSString *)getMd5_32Bit_String:(NSString *)srcString isUppercase:(BOOL)isUppercase; + (NSString *)getMd5_16Bit_String:(NSString *)srcString isUppercase:(BOOL)isUppercase; @end
MD5.m
#import "MD5.h" #import <Foundation/Foundation.h> #import <CommonCrypto/CommonDigest.h> @implementation MD5 //字符串MD5加密 + (NSString *)md5:(NSString *)inPutText { const char *cStr = [inPutText 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] ] lowercaseString]; } //32位MD5加密方式 + (NSString *)getMd5_32Bit_String:(NSString *)srcString isUppercase:(BOOL)isUppercase{ const char *cStr = [srcString UTF8String]; unsigned char digest[CC_MD5_DIGEST_LENGTH]; CC_MD5( cStr, 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]]; if (isUppercase) { return [result uppercaseString]; }else{ return result; } } //16位MD5加密方式 + (NSString *)getMd5_16Bit_String:(NSString *)srcString isUppercase:(BOOL)isUppercase{ //提取32位MD5散列的中间16位 NSString *md5_32Bit_String=[self getMd5_32Bit_String:srcString isUppercase:NO]; NSString *result = [[md5_32Bit_String substringToIndex:24] substringFromIndex:8];//即9~25位 if (isUppercase) { return [result uppercaseString]; }else{ return result; } } @end
“人生苦短,不要把时间浪费在犹豫不决上,喜欢的东西就去买,喜欢的人就去追。”