Дважды щелкните на "My Project" в Проводнике Решения и посмотрите на "Тип приложения": ComboBox. Это говорит Вам (и позволяет Вам измениться), тип проекта.
Во-первых, НЕ используйте - [NSData description]
для создания NSString для таких целей. (Лучше рассматривать -описание
как результат отладки. Прошу прощения, если мой предыдущий ответ ввел вас в заблуждение, я просто распечатал описание, чтобы продемонстрировать, что NSData можно зашифровать и расшифровать.) Вместо этого используйте методы NSString -dataUsingEncoding:
и -initWithData: encoding:
для преобразования между NSData и NSString. Даже с этим, обратите внимание, что данные, зашифрованные AES, вероятно, не будут хорошо преобразованы в строки как есть - некоторые последовательности байтов просто не будут хорошо воспроизводиться, поэтому рекомендуется закодировать данные перед созданием строки.
I ' Я предлагаю вам попробовать кодировку Base64 NSData, поскольку данные Base64 всегда можно представить в виде строки ASCII. (Конечно, когда вы это сделаете, вам придется декодировать из Base64 перед расшифровкой.)
Вот несколько полезных ресурсов ...
Изменить: Я предполагал, что вы объедините это с моим ответом на ваш предыдущий вопрос об AES-шифровании объектов NSString. Кодирование данных, как это не делает Base64 ' не накладывать никаких ограничений на сами данные - это, безусловно, могут быть сами данные, зашифрованные AES. Вот что делать, если вам нужен только строковый ввод и вывод:
На самом деле это просто вопрос объединения двух частей вместе и выполнения их в обратном порядке на выходе. Из моего предыдущего ответа вы можете изменить encryptString: withKey:
, чтобы выполнить последний шаг и вернуть строку, а также изменить decryptData: withKey:
на decryptString: withKey:
и принимают две строки. Это довольно просто.