iOS:如何使用十进制X NSData和十进制Y NSData生成公钥?

iOS:如何使用十进制X NSData和十进制Y NSData生成公钥?,ios,nsdata,public-key-encryption,Ios,Nsdata,Public Key Encryption,我有一个这样的方法 +(NSData*)getPublicKeyFromDecimalX:(NSData*)xInput decimalY:(NSData*)yInput{…} 我知道当我有像这样的hexX:(NSData*)时如何生成它 UInt8字节[]={0x04}; NSMutableData*allData=[[NSMutableData alloc]init]; [allData appendBytes:iBytes长度:sizeof(iBytes)]; [所有数据附件数据:xIn

我有一个这样的方法

+(NSData*)getPublicKeyFromDecimalX:(NSData*)xInput decimalY:(NSData*)yInput{…}
我知道当我有像这样的
hexX:(NSData*)
时如何生成它

UInt8字节[]={0x04};
NSMutableData*allData=[[NSMutableData alloc]init];
[allData appendBytes:iBytes长度:sizeof(iBytes)];
[所有数据附件数据:xInput];
[所有数据附件数据:yInput];
NSMutableDictionary*publicKeyOptions=[[NSMutableDictionary alloc]init];
[publicKeyOptions设置值:(u桥id)ksecAtterkyTypecSecPrimeRandom forKey:(u桥id)ksecAtterkyType];
[publicKeyOptions设置值:(uu桥id)kSecAttrKeyClass公共分叉:(uu桥id)kSecAttrKeyClass];
[publicKeyOptions设置值:[NSNumber numberWithInt:256]forKey:(_桥id)kSecAttrKeySizeInBits];
[publicKeyOptions设置值:[NSNumber numberWithBool:NO]forKey:(_桥id)kSecAttrIsPermanent];
SecKeyRef publicKeyRef=SecKeyCreateWithData((u桥CFDataRef)allData,(u桥CFDictionaryRef)publickeypoptions,nil);
但我正在努力将十进制
NSData
转换为十六进制
NSData

我正在努力将十进制
NSData
转换为十六进制
NSData

NSData本身既不是十进制也不是十六进制。它只是一系列字节的数据

考虑

UInt8字节[]={0x2a,0xff};
NSData*data=[NSData dataWithBytes:字节长度:sizeof(字节)];
NSLog(@“%@”,数据);//{length=2,bytes=0x2aff}
这是一个
NSData
,带有
0x2a
,后跟
0xff

如果以十进制形式声明
字节
,则
NSData
是相同的:

UInt8字节[]={42255};
NSData*data=[NSData dataWithBytes:字节长度:sizeof(字节)];
NSLog(@“%@”,数据);//还有{length=2,bytes=0x2aff}

有趣的是,
NSData
中表示的数字不是一系列字节(即不仅仅是一系列8位整数),而是一个大于一个字节的数值(例如16位、32位等)。在这种情况下,我们不得不担心作为
NSData
中表示的十进制值的“”。因此,当我们将数值存储为一系列字节时,我们希望明确字节的顺序。例如,如果我们想要一个big-endian
NSData
表示:

UInt16值=11007;
UInt16字节=NSSwapHostShortToBig(值);
NSData*data=[NSData dataWithBytes:&字节长度:sizeof(bytes)];
NSLog(@“%@”,数据);//{length=2,bytes=0x2aff}

这个问题没有意义,因为
NSData
只是八位字节的缓冲区。你想达到什么样的总体目标?谢谢,这很有意义。