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;

    }

     

  • 相关阅读:
    最少说服人数(二分+贪心)
    线段树或树状数组或归并(逆序对)
    线段树(区间更新,区间询问,节点存最小值)
    【Hades】ades是一个开源库,基于JPA和Spring构建,通过减少开发工作量显著的改进了数据访问层的实现
    【hibernate】spring+ jpa + hibername 配置过程遇到的问题
    【方言】Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set
    【Bean】 这才是bean,一直没仔细看
    【spring配置】 一组配置文件引出的问题
    org.springframework.web.servlet.view.InternalResourceViewResolver
    org.springframework.orm.jpa.JpaTransactionManager
  • 原文地址:https://www.cnblogs.com/qwer-BHS/p/5315963.html
Copyright © 2011-2022 走看看