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