Хотите преобразовать зашифрованные NSData 3DES в NSString

В своем проекте я шифрую некоторые данные (строку) с помощью алгоритма шифрования 3DES. Строка, которую я передаю функции шифрования, возвращает мне объект NSData.

Теперь я хочу преобразовать NSData в NSString, чтобы отправить эту строку на сервер.

Поэтому я использовал этот код для преобразования NSData в NSString.

NSString *stringCreated = [[NSString alloc] initWithData:encryptedData encoding:NSASCIIStringEncoding];

Но когда я печатаю эту строку, она выводит на консоль очень мало символов. Я думаю, что есть несколько символов, которые создают последовательность «\ 0», из-за которой он печатает строку только до этого символа.

Я пытался закодировать данные с помощью NSUTF8StringEncoding, но он возвращает мне (null).

Я хочу отправить на сервер полную строку, что мне теперь делать?


person Rajan Balana    schedule 04.12.2012    source источник


Ответы (1)


Это не сработает, поскольку зашифрованная строка - это двоичные данные. Преобразуйте его в Base64, если вам нужно использовать текстовое представление.

Здесь описано преобразование NSData в NSString: Преобразование NSData в base64

person Nickolay Olshevsky    schedule 04.12.2012
comment
Есть ли какой-либо другой подход, который я могу использовать для отправки зашифрованных данных в SOAP Webservice, кроме строки Base64? - person Rajan Balana; 04.12.2012
comment
Другой альтернативой является отправка шестнадцатеричного представления. Помните, что вам нужно будет конвертировать обратно на стороне сервера, поэтому не пытайтесь проявлять слишком творческий подход. - person Kitsune; 04.12.2012
comment
Я согласен, что для коротких строк шестнадцатеричное представление было бы лучше и проще в реализации. - person Nickolay Olshevsky; 05.12.2012