如何使Hexa在NSData上必须是2位数

时间:2011-05-19 04:40:37

标签: iphone hex nsdata


我尝试在iphone上使用加密aes和成功,但我想在nsdata上的结果必须是2位数六进制,我尝试打印密码whit的结果这段代码:

unsigned char ciphertext[16];
....
...
...
...
for (int i=0; i<sizeof(ciphertext); i++) {
    NSLog(@"ciphertext[%d] : %x ",i,ciphertext[i]);

}

结果是:

密文[0]:43
密文[1]:d4
密文[2]:a5
密文[3]:ee
密文[4]:24
密文[5]:a5
密文[6]:31
密文[7]:62
密文[8]:1c
密文[9]:99
密文[10]:88
密文[11]:29
密文[12]:d6
密文[13]:97
密文[14]:7&lt; ==这是问题,怎么使这个成为07?
密文[15]:44

请帮我把这个六位数设为2位数? 的问候,

1 个答案:

答案 0 :(得分:1)

您可以使用:

NSLog(@"ciphertext[%d] : %02x ",i,ciphertext[i]);

请参阅IEEE printf specification了解String Format Specifiers doc引用的更多选项。

要将char[]存储到NSData,您可以执行以下操作:

NSData *data = [NSData dataWithBytes:ciphertext length:16];