您的位置:首页 > 其它

MD5加密

2016-03-14 13:57 776 查看
导入头文件:

#import <CommonCrypto/CommonDigest.h>

/**************************************************

函数名称 : MD5TO32Lower

函数描述 : md5 32位加密(小写)

输入参数 :


输出参数 :


返回值 : NSString*

备注 :
N/A

**************************************************/

+ (NSString *)MD5TO32Lower:(NSString *)mwstr

{

const char *cStr = [mwstr
UTF8String];

unsigned char result[32];

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",

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]];

}

/**************************************************

函数名称 : MD5TO32Upper

函数描述 : md5 32位加密(大写)

输入参数 :


输出参数 :


返回值 : NSString*

备注 :
N/A

**************************************************/

+ (NSString *)MD5TO32Upper:(NSString *)mwstr

{

const char *cStr = [mwstr
UTF8String];

unsigned char result[32];

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",

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]];

}

/**************************************************

函数名称 : MD5TO16

函数描述 : md5 16位加密

输入参数 :


输出参数 :


返回值 : NSString*

备注 :
N/A

**************************************************/

+(NSString *)MD5TO16Lower:(NSString *)mwstr

{

//先32位加密

NSString *str = [self
MD5TO32Lower:mwstr];

//取中间16位

return [str
substringWithRange:NSMakeRange(8, 16)];

}

/**************************************************

函数名称 : MD5TO16

函数描述 : md5 16位加密

输入参数 :


输出参数 :


返回值 : NSString*

备注 :
N/A

**************************************************/

+(NSString *)MD5TO16Upper:(NSString *)mwstr

{

//先32位加密

NSString *str = [self
MD5TO32Upper:mwstr];

//取中间16位

return [str
substringWithRange:NSMakeRange(8, 16)];

}

Tip:

警告:Implicit conversion loses integer precision:'unsigned long' to 'CC_LONG' (aka 'unsigned int')

解决方案:

CC_MD5( cStr, strlen(cStr), result);
改成

CC_MD5( cStr, (CC_LONG)strlen(cStr), result);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: