zoukankan      html  css  js  c++  java
  • 把字典的key value 拼接成字符串加上签名加密

    - (NSString *)getSianKeyWithDic:(NSDictionary *)dic

    {

        //按字典排序

        NSArray* arr = [dic allKeys];

        arr = [arr sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2){

            NSComparisonResult result = [obj1 compare:obj2];

            return result==NSOrderedDescending;

            

        }];

        //拼接字符串

        NSMutableArray * strArray =[[NSMutableArray alloc]init];

        [arr enumerateObjectsUsingBlock:^(id  obj, NSUInteger idx, BOOL * _Nonnull stop) {

            NSString *appendStr = [[NSString alloc] init];

            appendStr = obj;

            NSString *par = dic[obj];

            

            if (dic[obj]!=NULL) {

                appendStr = [appendStr stringByAppendingString:par];

                [strArray addObject:appendStr];

            }

        }];

        NSString * str = [strArray componentsJoinedByString:@""];

        

        NSString *sianStr = [NSString stringWithFormat:@"%@signKey",str];

        NSLog(@"+++%@",sianStr);

        //加密

        NSString *md5Str =[self getMd5_32Bit_String:sianStr];

        NSLog(@"%@",md5Str);

        return md5Str;

    }

    //32位MD5加密方式

    - (NSString *)getMd5_32Bit_String:(NSString *)srcString

    {

        const char *cStr = [srcString UTF8String];

        unsigned char digest[CC_MD5_DIGEST_LENGTH];

      

        NSMutableString *result = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];

        for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)

            [result appendFormat:@"%02x", digest[i]];

        

        return result;

    }

  • 相关阅读:
    AJAX
    Aliyun服务器配置Redis
    Aliyun服务器配置MySQL
    Python基础之迭代器详解
    Python基础之函数
    Flask入门--URL
    认识Web
    肖知兴:企业的底层逻辑与企业家的突破(下)
    建造者模式(Bulider模式)详解
    为什么我强烈推荐你用枚举来实现单例模式
  • 原文地址:https://www.cnblogs.com/LGX3399577/p/LDSD.html
Copyright © 2011-2022 走看看