您的位置:首页 > 移动开发 > IOS开发

IOS 加密(MD5,SHA1)

2016-01-25 00:00 537 查看
摘要: IOS 加密(MD5,SHA1)

导入 IOS自带的密码库就可以了。

#import <CommonCrypto/CommonDigest.h>

//SHA1加密
-(NSString *)Sha:(NSString *)string{
const char *cstr = [string UTF8String];
NSData *data = [NSData dataWithBytes:cstr length:string.length];
uint8_t digest[CC_SHA1_DIGEST_LENGTH];
CC_SHA1(data.bytes, (CC_LONG)data.length, digest);
NSMutableString *output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH *2];
for (int i = 0; i<CC_SHA1_DIGEST_LENGTH; i++) {
[output appendFormat:@"%02x",digest[i]];
}
return output;
}

+(NSString *)ShainitWhit:(NSString *)string{
Helper* shaHelper = [[Helper alloc]init];

return [shaHelper Sha:string];
}

//MD5加密
-(NSString *)MD:(NSString *)string{
const char *cstr = [string UTF8String];
NSData *data = [NSData dataWithBytes:cstr length:string.length];
unsigned char digest[CC_MD5_DIGEST_LENGTH];
CC_MD5(data.bytes, (CC_LONG)data.length, digest);
NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH *2];
for (int i = 0; i<CC_MD5_DIGEST_LENGTH; i++) {
[output appendFormat:@"%02x",digest[i]];
}
return output;
}

+(NSString *)MDinitWhit:(NSString *)string{
Helper *mdHelper = [Helper new];
return [mdHelper MD:string];
}

MD5,SHA-1,SHA-224,SHA-256,SHA-384,SHA-512,以及它们对应的HMAC算法,都属于散列算法,又叫摘要算法,单 向运算,不可逆,所以没法解密。但是可以通过暴力方式破解(按顺序产生字符串一个个试),当然会花非常长的时间,而且这个试出来的结果也不一定是原结果, 因为的确存在多个源数据能计算出相同散列结果的情况。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  IOS加密 MD5 SHA1 加密