MD5的使用
MD5的特點(diǎn)(百度百科):
壓縮性:任意長(zhǎng)度的數(shù)據(jù)离斩,算出的MD5值長(zhǎng)度都是固定的
容易計(jì)算:從原數(shù)據(jù)計(jì)算出MD5的值很容易
抗修改性:對(duì)原數(shù)據(jù)進(jìn)行任何改動(dòng)鞍匾,哪怕是只修改一個(gè)字節(jié)枯跑,所得到的MD5的值都有很大差距
強(qiáng)抗碰撞性:已知原數(shù)據(jù)和其MD5值疲憋,想找到一個(gè)具有相同MD5值的數(shù)據(jù)(即偽造數(shù)據(jù))是非常困難的
MD5在使用的時(shí)候先要導(dǎo)入#import<CommonCrypto/CommonDigest.h>
//MD5轉(zhuǎn)換灾馒,將字符串轉(zhuǎn)化成MD5字符串 去掉特殊的標(biāo)記
- (NSString *)changeToMD5String: (NSString *)str{
//轉(zhuǎn)換成c語(yǔ)言的字符串
const char *data = [str UTF8String];
unsigned char result[CC_MD5_DIGEST_LENGTH];
CC_MD5(data,(CC_LONG)strlen(data),result);
//變成OC不可變字符串
NSMutableString *s = [NSMutableString string];
for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
[s appendFormat:@"%02X",result[i]];
}
return? s;
}