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;

    }

     

  • 相关阅读:
    【Jquery系列】详解Jquery对象和Dom对象
    将博客搬至CSDN
    【工具篇】.NET开发常用工具
    【ASP.NET MVC系列】浅谈jqGrid 在ASP.NET MVC中增删改查
    【SqlServer】【问题收集】必须声明标量变量
    【SqlServer】【问题收集】删除同一张表中完全相同的记录
    【SqlServer】【问题收集】阻止保存要求重新创建表的更改
    Java多线程编程中Future模式的详解<转>
    Java后端,应该日常翻看的中文技术网站<转>
    PostgreSql 函数
  • 原文地址:https://www.cnblogs.com/qwer-BHS/p/5315963.html
Copyright © 2011-2022 走看看