最近做个项目需要拿后台的Base64编码数据解码,发现后端加密的数据前端端不能解密的情况.发现后台是用safe_url加密的.最后解决结果如下:
#pragma - 将saveBase64编码中的"-","_"字符串转换成"+","/",字符串长度余4倍的位补"="
- (NSString*)safeUrlBase64Decode:(NSString*)safeUrlbase64Str
{
// '-' -> '+'
// '_' -> '/'
// 不足4倍长度,补'='
NSMutableString * base64Str = [[NSMutableString alloc]initWithString:safeUrlbase64Str];
base64Str = (NSMutableString * )[base64Str stringByReplacingOccurrencesOfString:@"-" withString:@"+"];
base64Str = (NSMutableString * )[base64Str stringByReplacingOccurrencesOfString:@"_" withString:@"/"];
NSInteger mod4 = base64Str.length % 4;
if(mod4 > 0)
[base64Str appendString:[@"====" substringToIndex:(4-mod4)]];
NSLog(@"Base64原文:%@", base64Str);
return base64Str;
}
这个返回的结果就是正常的base64的解码数据了.