iOS请求报错,加密结果不一致,参数可能被篡改,或者你请求的接口后台抛异常啦

之前调过一个接口,报错如下:


前提说明:其他接口请求是没有问题的,但是只有一个接口出现了这种问题。

经过排查,原因如下:

iOS端参数加密代码如下:

NSString * body = nil;
    if (newParam) {
        //body内容
        body = [WMJSONUtil stringWithJSONObject:newParam];
        //按要求去除\s\t\r\n
        body = [body stringByReplacingOccurrencesOfString:@"\t" withString:@""];
        body = [body stringByReplacingOccurrencesOfString:@"\r" withString:@""];
        body = [body stringByReplacingOccurrencesOfString:@"\n" withString:@""];
        body = [body stringByReplacingOccurrencesOfString:@" " withString:@""];
    }

而Android和服务端的却是这样的:

NSRegularExpression *regularExpretion=[NSRegularExpression regularExpressionWithPattern:@"\\s*|\t|\r|\n"
                                                                                    options:0
                                                                                      error:nil];

结论:很明显能够看出Android和服务是通过正则去除网络标签,而iOS是通过替换达到这种效果,显然替换的方式没有正则的强大。所以修改方法就是iOS也使用正则过滤,保证三端的加密方式是一致的就可以了。

希望能够帮助大家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值