iOS 参数加密后有特殊符号,后台解析不出

    开发中曾遇到棘手无法解决的问题,当时传输参数给后台,后台总是解析失败。问题一直未解。现在觉得应该是这个问题,参数加密之后带了&等特殊符号,可能后台解析不到。

如: 加密后的数据:KLJKLJLHKLJKJ$@#22JH

后台解析的是KLJKLJLHKLJKJ22JH而不是KLJKLJLHKLJKJ$@#22JH。使用encodeToPercentEscapeString处理后,不会出现这样问题。

参数加密

- (NSString*)encodeStringWithKeyAndIv: (NSString*) input{

    NSString  *strTemp = [self  numToAESStringWithIv: input];

    return  [self encodeToPercentEscapeString:strTemp];

}

传加密文件丢失+$%特殊字符处理

- (NSString*)encodeToPercentEscapeString: (NSString*) input{

 NSString  *outputStr = (NSString *) CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)input,NULL,(CFStringRef)@"!*'();:@&=+ $,/?%#[]",kCFStringEncodingUTF8));

    returnoutputStr;

}

你可能感兴趣的:(iOS 参数加密后有特殊符号,后台解析不出)