在xcode11之前,下面的ios12和上面的ios13的加密都是相同的。
但是在升级到xcode11之后,下面的ios12中的加密仍然是一样的。但是在上面的Ios13中,我得到的加密字符串包括“长度”和“字节”。
下面的IOS12
a7eec1e7b1514058683ebae8e1d86b6b37d4b0e8f6316cbfcd2b42c5ec5952e450c8b0b68e26cbb560fcbc158261c3d7365125b9ec0fb4f7b484beeaf12827ba04c7e8e86b735e04427e0f3957fda8c0ca3133c1d8f4218a415b8740422b41a60bf54e3f8c32d0d3fba4a9de1d59fc4603c97baa6387f1f0b9b27b1e0722350f04b763f002d38afe99553b1511e8c12db3aae59f30a02b44529d3c4866b9449cdb40b60a7b19dbf5e4e47da39c1c3995470c463cf82dfdb1247f7d524076292248f31b43d49c31ec4f76233763190e2c
IOS13以上。
bytes=0xa7eec1e7b1514058683ebae8e1d86b6b...fac0266ed36ff1ef}
{length=208
我想要的是只获取IOS13中的字节。对不起我的英语不好。谢谢你的帮助
发布于 2020-01-14 10:04:56
首先,你的问题不是问问题的更准确的方法,但我们还是试着解决这个问题吧:
我猜你是从一些数据中获得加密的,比如:
NSString *encryptionString = [NSString stringWithFormat:@"%@",encryptionData];在过去的iOS版本中,它通常只返回字符串ok,但从iOS13开始,您将得到数据的描述,如下所示:
$1 = 0x0000000283373150 @"{length = 32, bytes = 0xf394ff84 a55f406d 165ab4fd d17eca51 ... 5c4cfdd1 06856852 }"现在您需要转换数据,将数据发送到方法,如下所示:
NSString * encryptionString = [self stringFromData: encryptionData];要调用的方法是:
- (NSString *) stringFromData:(NSData *)myData {
NSUInteger length = myData.length;
if (length == 0) {
return nil;
}
const unsigned char *buffer = myData.bytes;
NSMutableString *hexString = [NSMutableString stringWithCapacity:(length * 2)];
for (int i = 0; i < length; ++i) {
[hexString appendFormat:@"%02x", buffer[i]];
}
return [hexString copy];
}此方法将返回所需的NSString。
https://stackoverflow.com/questions/59728318
复制相似问题