這里簡單的介紹一下我纪,在iOS開發(fā)中拓颓,對字符串進行MD5加密的做法。
- (NSString *)stringToMD5:(NSString *)str {
// 1.首先將字符串轉換成UTF-8編碼, 因為MD5加密是基于C語言的,所以要先把字符串轉化成C語言的字符串
const char *fooData = [str UTF8String];
// 2.然后創(chuàng)建一個字符串數(shù)組,接收MD5的值
unsigned char result[CC_MD5_DIGEST_LENGTH];
// 3.計算MD5的值, 這是官方封裝好的加密方法:把我們輸入的字符串轉換成16進制的32位數(shù),然后存儲到result中
CC_MD5(fooData, (CC_LONG)strlen(fooData), result);
/*
第一個參數(shù):要加密的字符串
第二個參數(shù): 獲取要加密字符串的長度
第三個參數(shù): 接收結果的數(shù)組
*/
// 4.創(chuàng)建一個字符串保存加密結果
NSMutableString *saveResult = [NSMutableString string];
// 5.從result 數(shù)組中獲取加密結果并放到 saveResult中
for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
[saveResult appendFormat:@"%02x", result[i]];
}
// x表示十六進制,%02X? 意思是不足兩位將用0補齊,如果多余兩位則不影響
return saveResult;
/*
這里返回的是32位的加密字符串张峰,有時我們需要的是16位的加密字符串,其實仔細觀察即可發(fā)現(xiàn)棒旗,16位的加密字符串就是這個字符串中見的部分喘批。我們只需要截取字符串即可([saveResult substringWithRange:NSMakeRange(7, 16)])
*/
}