iOS GlobalTool

//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小写
}
Md5加密
/** 对字典(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字符串
}
字典ASCII排序
/**
 * 按顺序拼接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;
}
字典->数组- > 有序json串
//字典转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;
}
dictionary与json互转

 

posted @ 2019-09-09 09:29  &#127810;浪迹天涯&#127810;  阅读(185)  评论(0编辑  收藏  举报