• 调用接口时对参数的排序、生成签名、生成随机数,获取唯一标示符


    #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;

    }

     

  • 相关阅读:
    Hibernate4集成 Annotation使用教程
    搭建SSH入过的那些坑
    Tomcat配置虚拟目录
    java中类名.class、实例.getclass()区别
    nginx使用ssl模块配置HTTPS支持
    nginx安装配置域名转发
    RedHat安装DB2详细步骤(附卸载、备份恢复步骤)
    iOS学习笔记-084.粒子效果——路径移动
    iOS APP打包上传到AppStore的最新步骤
    git使用命令, 特别:git checkout -b a 与 git branch a区别
  • 原文地址:https://www.cnblogs.com/qwer-BHS/p/5315963.html
Copyright © 2020-2023  润新知