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);
#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);
相关文章推荐
- 浅谈WEB安全性(前端向)
- QPS计算方法
- Xcode文件被锁定:The file ".xcodeproj" could not be unlocked
- copy-list-with-random-pointer
- Atlassian-CSDN软件商城
- word-wrap和word-break的区别
- Android得到控件在屏幕中的坐标
- 中间件迁移考虑的问题
- 第八届河南省程序设计大赛-NYOJ-1242-Interference Signal(水题)
- 打印业务设计模式--先写批次编号
- poj 1159 Palindrome(dp+滚动数组)
- 三个数gcd与lcm
- UrlBasedViewResolver与InternalResourceViewResolver
- JBoss 系列九十九:Rest WebService jBPM 6 集成演示样例
- IOS 上架要求视频
- 单钥密码体制和双钥密码体制有什么区别?
- Swagger与SpringMVC项目整合
- javascript window.name是什么?
- 5、在MyJDBCUtils中,增加根据User实体的id,去查找User的方法
- 翻翻git之---基于universalimageloader实现的图片加载控件BlurImageView