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-endianNSData
表示:
UInt16值=11007;
UInt16字节=NSSwapHostShortToBig(值);
NSData*data=[NSData dataWithBytes:&字节长度:sizeof(bytes)];
NSLog(@“%@”,数据);//{length=2,bytes=0x2aff}
这个问题没有意义,因为NSData
只是八位字节的缓冲区。你想达到什么样的总体目标?谢谢,这很有意义。