iOS GlobalTool
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
//md5加密方式一 +(NSString*)md5Str:(NSString *)str { const char* myPasswordd = str.UTF8String; unsigned char md5c[16]; CC_MD5(myPasswordd, (CC_LONG)strlen(myPasswordd), md5c); NSMutableString *md5Str = [NSMutableString string]; for(int i =0; i<16; i++) { [md5Str appendFormat:@"%02x",md5c[i]]; } return [md5Str uppercaseString];//uppercaseString 大写 lowercaseString小写 } //md5加密方式二 +(NSString*)md532BitUpperStr:(NSString *)str { const char *cStr = [str UTF8String]; unsigned char result[16]; NSNumber *num = [NSNumber numberWithUnsignedLong:strlen(cStr)]; CC_MD5( cStr,[num intValue], 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] ] uppercaseString]; //uppercaseString 大写 lowercaseString小写 }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/** 对字典(Key-Value)排序 @param dict 要排序的字典 */ +(NSString *)sortedDictionary:(NSMutableDictionary *)dict{ NSMutableString *contentString =[NSMutableString string]; NSArray *keys = [dict allKeys]; //排序 NSArray *sortedArray = [keys sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) { return [obj1 compare:obj2]; }]; //拼接 把排序后的字典拼接成string NSMutableArray* keysArr = [[NSMutableArray alloc] init]; NSMutableArray* objectsArr = [[NSMutableArray alloc] init]; for (NSString *keyStr in sortedArray) { if (![[dict objectForKey:keyStr] isEqualToString:@""] && ![[dict objectForKey:keyStr] isEqualToString:@"key"] ){ [contentString appendFormat:@"%@=%@&", keyStr, [dict objectForKey:keyStr]]; [keysArr addObject:keyStr]; [objectsArr addObject:[dict objectForKey:keyStr]]; } } contentString = (NSMutableString *)[contentString substringToIndex:contentString.length-1]; NSLog(@"contentString=%@", contentString); return contentString;//排序后拼接的key=value字符串 }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/** * 按顺序拼接json串 * methodName 方法名 * keys key的数组 * objects object的数组 */ +(NSString *)orderJsonStringWithkeys:(NSArray *)keys andObjects:(NSArray *)objects{ NSMutableString *mutableString = [NSMutableString string]; [mutableString appendString:@"{"]; if (keys.count > 0) { for (NSInteger i = 0; i < keys.count; i++) { if (i == keys.count-1) { [mutableString appendFormat:@"\"%@\":\"%@\"", keys[i], objects[i]]; } else { [mutableString appendFormat:@"\"%@\":\"%@\",", keys[i], objects[i]]; } } } [mutableString appendString:@"}"]; NSString *orderJsonString = [NSString stringWithString:mutableString]; return orderJsonString; }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
//字典转JSON +(NSString *)convertJSONWithDic:(NSDictionary *)dic { NSError *err; NSData *data = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&err]; if (err) { return @"字典转JSON出错"; } return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; } //JSON转字典 +(NSDictionary *)convertDicWithJSON:(NSString *)jsonStr { if (jsonStr.length == 0) { return nil; } NSError *err; NSData *jsondata = [jsonStr dataUsingEncoding:NSUTF8StringEncoding]; NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsondata options:NSJSONReadingMutableContainers error:&err]; if (err) { return nil; } return dic; }