#ios #aes
#iOS #aes
Вопрос:
Как я могу получить зашифрованные данные в виде строки вместо объекта NSData в Objectice -C? Мне нужно отправить этот зашифрованный текст в> метод net, и процедуры дешифрования обрабатываются.Чистый код. Или кто-нибудь может помочь мне зашифровать текст в iOS и расшифровать его в> net?
Добавление из комментария — Zaph
Я использую этот код:
StringEncryption *crypto = [[StringEncryption alloc] init];
NSData *_secretData = [SearchKey dataUsingEncoding:NSUTF8StringEncoding];
CCOptions padding = kCCOptionPKCS7Padding;
NSData *key = [_key dataUsingEncoding:NSUTF8StringEncoding];
NSData *encryptedData = [crypto encrypt:_secretData key:key padding:amp;padding];
Мне нужно отправить EncryptedData в .Net. Но я не знаю, как отправить NSData.Метод Net, поэтому я попытался преобразовать эти EncryptedData в NSString
, к сожалению, он дает мне ноль. Я пробовал использовать base64EncodedStringWithOptions, он также выдает ошибку при расшифровке.
Комментарии:
1. Конечно, помощь доступна здесь. Написание кода — это не так. Изучайте, исследуйте, пишите как можно лучше. Если это не сработает, вернитесь сюда с кодом проблемы, и помощь должна быть доступна.
2. При шифровании данных создаются 8-битные байты, а не символы ASCII. Таким образом, требуется некоторая кодировка, обычно это Base64.
3. Зашифрованные данные должны обрабатываться в виде 8-битных байтов, а не обычных символов. Если вы попытаетесь обработать данные как символы, вы неизбежно испортите их, и они не будут расшифрованы. Если вам нужна символьная строка для передачи, закодируйте 8-битные байты в Base64.
4. Что такое класс StringEncryption? Что .новый класс? Что не показано, так это режим и, если CBC (он должен использовать CBC move), iv и длина ключа. Ключ не должен быть строкой (паролями), а ключ должен быть правильной длины. Итак, как эти вещи обрабатываются в StringEncryption и .net?
Ответ №1:
Вы можете преобразовать NSData в строку base 64. Для iOS 7 NSData имеет следующие два метода: (прямые цитаты из Apple doc)
base64EncodedDataWithOptions
: Создайте NSData в кодировке Base-64, UTF-8 из содержимого получателя, используя указанные параметры.
base64EncodedStringWithOptions
: Создайте NSString в кодировке Base-64 из содержимого получателя, используя указанные параметры.
Комментарии:
1. Я использую этот код StringEncryption *crypto = [[StringEncryption alloc] init] ; NSData *_secretData = [SearchKey dataUsingEncoding:NSUTF8StringEncoding]; CCOptions padding =kCCOptionPKCS7Padding; NSData *EncryptedData = [шифрование шифрования: _secretData ключ:[_key dataUsingEncoding:NSUTF8StringEncoding] заполнение: amp;padding]; и мне нужноотправьте зашифрованные данные в .Net. Но я не знаю, как отправить NSData. Чистый метод, поэтому я попытался преобразовать эти зашифрованные данные в NSString, к сожалению, он дает мне ноль.я пробовал с base64EncodedStringWithOptions, он также выдает ошибку при расшифровке….
2. Добавлен комментарий к вопросу для форматирования и продолжения вопроса.