zoukankan      html  css  js  c++  java
  • 调用接口时对参数的排序、生成签名、生成随机数,获取唯一标示符

    #pragma mark -- 参数的排序  

    + (NSMutableString*)postSignParamet:(NSString*)method privateParam:(NSMutableDictionary*)param {

        

        NSMutableString* lastParam = [[NSMutableString alloc]init];

        

        //排序 

        NSArray* sortKeys = [[param allKeys] sortedArrayUsingSelector:@selector(compare:)];

        

        for (NSString *key in sortKeys) {

            [lastParam appendString:[NSString stringWithFormat:@"%@=%@&",key,[param objectForKey:key]]];

        }

         //appKey 作为排序的结尾字符,

        [lastParam appendString:[NSString stringWithFormat:@"%@=%@",appkey,PARTNER_ID]];

        return lastParam;

    }

    //生成签名

    + (NSString*)postSign:(NSString *)sign {

        

        NSData *data = [sign dataUsingEncoding:NSUTF8StringEncoding];

        unsigned char result[CC_MD5_DIGEST_LENGTH];

        CC_MD5(data.bytes, (CC_LONG)data.length, result);

        

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

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

            [ret appendFormat:@"%02X",result[i]];

        }

        return ret;

    }

     

    #pragma mark -- 获取随机数

    + (NSString *)getNonceStr

    {

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

        for (int i = 0; i < 32; i++) {

            int number = arc4random() % 32;  //随机数的长度 32

            if (number < 10) {

                int figure = (arc4random() % 10) + 48//数字

                NSString *tempString = [NSString stringWithFormat:@"%d", figure];

                string = [string stringByAppendingString:tempString];

            }

            else if (number > 10 && number < 20)

            {

                int figure = (arc4random() % 26) + 65//大写

                char character = figure;

                NSString *tempString = [NSString stringWithFormat:@"%c", character];

                string = [string stringByAppendingString:tempString];

            }

            else {

                int figure = (arc4random() % 26) + 97//小写

                char character = figure;

                NSString *tempString = [NSString stringWithFormat:@"%c", character];

                string = [string stringByAppendingString:tempString];

            }

        }

        NSLog(@"%@", string);

        return string;

    }

     

    #pragma  mark -- 获取唯一标识符

    + (NSString*)getDeviceInfo {

        NSString *identifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];

        return identifier;

    }

     

  • 相关阅读:
    【NOIp复习】欧拉函数
    【vijos】【神读入】Knights
    【vijos】【位运算】Miku_Nobody
    【vijos】【二分图带权匹配】拯救世界-星际大战
    【模板】KM算法模板(带注释)——二分图带权最大匹配
    【vijos】【二分图最大匹配】银翼の舞
    【vijos】【树形dp】佳佳的魔法药水
    QuartusII 13.0的完美破解
    CANVAS实现调色板 之 我的第一个随笔
    Couldn't read row 0, col -1 from CursorWindow
  • 原文地址:https://www.cnblogs.com/qwer-BHS/p/5315963.html
Copyright © 2011-2022 走看看