2015-04-16 3 views
-1

У меня есть байт длиной 128. Я хочу, чтобы эти байты были помещены в один int (или string).Byte [] Array to Int

Byte *binaryKey = (Byte *)malloc(128); 
// Adds 128 bytes to binaryKey 
// eg. binaryKey = {202, 38, 255, 122, 65...} 

Я хочу, чтобы затем иметь возможность принять binaryKey и поставить его в один междунар (если не представляется возможным, даже строку), как 2023825512265...

+1

Любопытный - зачем вы хотите строку байтов в десятичном формате без возможности указать, где заканчивается один байт, а другой начинается? Строка '' 2023825512265 ... "' может быть проанализирована, может быть разными способами, чтобы не сказать, что это должно быть. – rmaddy

+0

@rmaddy Это довольно сложный метод шифрования, в котором я конвертирую с Java в Objective-C. (Я не писал метод, просто переписывая для другой платформы). Байты отличаются от ключа, используемого для шифрования. – Harry

+0

Если вы переносите его с другой платформы, что делает эта платформа? Я не могу себе представить, что возможно использование последнего подхода (конкатенация десятичных строковых представлений отдельных байтов). – Rob

ответ

0

Вы можете создать строку, как это:

NSMutableString *keyString = [[NSMutableString alloc] init]; 
for (int i = 0; i < 128; i++) { 
    [keyString appendString:[NSString stringWithFormat:@"%hhu", binaryKey[i]]]; 
} 
+0

@ Rob посмотреть на его пример. Это именно то, о чем он просил. binaryKey = {202, 38, 255, 122, 65 ...} ---> "2023825512265 ..." – DanielG

+0

Вы совершенно правы. Я прочитал вопрос и, в буквальном смысле, я не мог себе представить, что кто-то напишет такой плохой алгоритм шифрования. Но перечитав его, он попросил об этом. Лол. – Rob

+0

@Rob Blame Google .. http://codedigging.com/blog/2014-06-09-about-encryptedpasswd/ – Harry

0

Целое число имеет размер 2, 4 или 8 байтов. 128 байтов в него не вписываются.

Чтобы создать строку для этого достаточно просто:

NSData *data = [NSData dataWithBytes:binaryKey length:128]; 
NSString *string = [data base64EncodedStringWithOptions:0]; 

Но почему не использовать экземпляр NSData?

+0

Амин, я просто попробовал это, и он не печатает строку в правильном формате. – DanielG

+0

Это довольно сложный метод шифрования, в котором я конвертирую с Java в Objective-C. Байты отличаются от ключа, используемого для шифрования. – Harry

+0

Я не понимал, что вам действительно нужен шестнадцатеричный формат. Для меня это похоже на то, что вы будете довольны любой строкой. –