Различие AES между iPhone (Objective-c) и Java

Термин Flash может включать любое из других условий, определенных ниже, и я нахожу, что высказывание "Flash", не определяя точно, что Вы имеете в виду, может путать и вводить в заблуждение. Рассматриваемый вопрос: я не уверен, что Вы конкретно имеете в виду при высказывании "Flash" в вопросе. Это - Flash player? Инструмент разработки? Или целый набор технологий, которые подпадают под то, что Adobe называет "Платформой Flash"? Чтобы помочь разрешить все это, позвольте мне определить технологии, вовлеченные в создание Flash и содержания Flex так, чтобы мы все использовали ту же терминологию здесь:

Flash Player является временем выполнения для богатого мультимедийного контента в браузере. Существует также Flash, Облегченный для выполнения содержания Flash на более старых или низкопроизводительных мобильных устройствах, и , Adobe AIR расширяет Flash player, чтобы позволить авторам содержания публиковать собственные настольные и мобильные приложения, которые могут интегрироваться с вещами как файловая система, системы управления окнами и датчики устройства как акселерометр и камера. Коллективно, Adobe называет их время выполнения Flash .

Профессионал Flash (часто называемый инструмент разработки Flash или Flash IDE) традиционно был первичным приложением, используемым для создания содержания, которое работает на Flash player. Это - очень разработчик, ориентированный с временными шкалами, слоями и визуальными инструментами для рисования. Разработчики программного обеспечения могут найти эту дезориентацию приложения и ограниченный по сравнению с другими средствами разработки, которые фокусируются больше на коде, как Разработчик Flash (см. ниже). Когда кто-то говорит, "Я создал что-то с Flash", они часто имеют в виду инструмент разработки Flash, но это не всегда имеет место. По этой причине хорошо всегда разъясниться для предотвращения любого беспорядка.

ActionScript является основным языком программирования, поддерживаемым Adobe для предназначения для времени выполнения Flash. Текущая версия является ActionScript 3 (сокращенный как [1 121] AS3), который поддерживался начиная с Flash Player 9. Содержание, созданное с более старыми версиями ActionScript, может все еще быть выполнено в последних версиях Flash player, но новые функции только поддерживаются при использовании ActionScript 3 для создания нового содержания.

Flex является набором технологий, разработанных для создавания больших приложений, которые предназначаются для времени выполнения Flash Adobe. Хотя высказывание "Flex" ранее имело ту же неоднозначность как "Flash", фирменный знак Flex становится более сфокусированным на платформе Flex и SDK, описанном ниже.

Flex SDK состоит из компиляторов, отладчика командной строки и платформы Flex. Включенные компиляторы: 1. MXMLC, ActionScript и компилятор MXML для вывода заключительного файла SWF для развертывания на Flash player. 2. COMPC, статический компилятор библиотеки для ActionScript это производит файлы SWC. 3. ASDOC, генератор документации основывался на технологии компилятора.

платформа Flex является набором классов ActionScript, разработанных для создания Богатых интернет-приложений. Это включает вещи как средства управления пользовательским интерфейсом, веб-сервисы и другие классы возможности соединения, средства форматирования и блоки проверки допустимости, перетаскивание, модальная работа с окнами и состояния компонента. Эти классы находятся в mx.* пакет. Обычно, когда разработчики говорят "Flex" без любой информации о разъяснении, они имеют в виду платформу Flex а не продукт, раньше известный как Разработчик Flex.

В 2011, Adobe пожертвовал SDK Flex Основе Apache Software. Это теперь называют Apache Flex, и этим полностью управляет сообщество, а не Adobe. Однако сотрудники Adobe продолжают способствовать проекту и Разработчику Flash (см. ниже), продолжает поддерживать новый SDKs, выпущенный проектом Flex Apache.

MXML является основанным на XML языком разметки, используемым компиляторами Flex для превращения расположения и помещающих компонентов в легче контейнеры. Древовидная структура XML делает иерархию вместимости легче визуализировать. MXML на самом деле преобразовывается в ActionScript во время процесса компиляции.

Разработчик Flash (раньше известный как [1 128] Разработчик Flex ) является средой разработки, которая позволяет разработчикам создавать различные типы проекта для создания файлов SWF, которые развертываются на времени выполнения Flash. Это основано на платформе Eclipse и более знакомо разработчикам программного обеспечения. Разработчик Flash поддерживает проекты, разработанные с Flex или чистым ActionScript. Проекты Flex включают платформу Flex. Проекты ActionScript являются самыми основными, можно работать с, начиная с единого класса и пустого холста, и платформа Flex не включена.

Разработчик Flash не заменяет Профессионала Flash. Некоторые люди, которые традиционно использовали Профессионала Flash, могут теперь принять решение использовать Разработчика Flash вместо этого. Часто, это разработчики программного обеспечения, которые ценят или требуют инструментов перспективной разработки, предлагаемых Разработчиком Flash, или не работают в большой степени с активами, разработанными в визуальном инструменте. Некоторые разработчики могут записать свой код в Разработчике Flash при желании скомпилировать их проекты в инструменте разработки Flash. Часто, эти разработчики являются также разработчиками, или они работают с другими людьми, которые являются разработчиками. В этой ситуации может быть много графических активов, созданных в инструменте разработки Flash, и это могло быть трудным или просто несоответствующим принести им в другую среду.

платформа Flex специально предназначена для создавания приложений. Это включает много традиционных средств управления формой (кнопки, списки, datagrids, и т.д.), и большая часть кода работает на усовершенствованной платформе компонента, записанной в ActionScript. Не все создают вид содержания, которое Flex разработан для создания, и Flex не заменяет традиционные методы разработки Flash для всех. Это - лучший подход для некоторых разработчиков, но не может быть правильно для других. Более тяжелые дизайном веб-сайты, такие как созданные для фильмов, музыки, энергетических напитков, рекламных кампаний и подобных вещей, вероятно, не должны использовать платформу Flex. Эти типы содержания могли бы лучше подходить для Профессионала Flash или чистого проекта ActionScript в Разработчике Flash. Точно так же небольшие виджеты, которые Вы помещаете в боковую панель Вашего веб-сайта или на Вашем профиле на сайте социальной сети, возможно, должны быть созданы с чистым ActionScript (без платформы Flex), потому что они требуют меньшего размера файла, и им, вероятно, не нужна большая сложная компонентная архитектура, разработанная для объемных приложений. При предназначении для времени выполнения Flash среда разработки, платформы и рабочий процесс должны быть выбраны на основе требований и целей проекта.

16
задан Janusz 22 June 2010 в 12:35
поделиться

4 ответа

This is not my area but it looks like on the client you have PKCS7 but on the server you have PKCS5.

3
ответ дан 30 November 2019 в 23:21
поделиться

Какой режим iPhone использует с AES? Вы ничего не перечисляете, так что, возможно, это означает, что не используется цепочка (ECB).

Однако на стороне Java вы используете CBC, но не указываете вектор инициализации. Это определенно неправильно. Если вы действительно используете CBC, у вас есть , чтобы иметь IV, который использовался во время шифрования. IV не секрет; его можно отправить вместе с зашифрованным текстом.

Если вы действительно используете ECB, то IV отсутствует, но ваша Java указывает неправильный режим.

2
ответ дан 30 November 2019 в 23:21
поделиться

Судя по вашим образцам, сервер делает это правильно, а клиент - нет.

Глядя на данные, я бы предположил, что ключ неверный. Пожалуйста, покажите нам код iPhone, особенно код для перехода от «1234567891123456» к вашему ключу.

0
ответ дан 30 November 2019 в 23:21
поделиться

Я недавно столкнулся с этим в другом проекте. Проблема заключалась в том, что длина ключа была на один байт больше, чтобы поместиться в буфер char внутри метода dataEncryptedUsingAlgorithm .

Проблема заключалась в том, что метод getBytes в NSString приводил к мягкому отказу. Он скопировал бы большую часть строки в буфер, но затем, поскольку длина ключа была на один байт больше, он «пометил» операцию как неудачную, установив для первого символа значение NUL (char 0).

Откройте этот метод в Xcode и посмотрите, как выглядит ваш ключевой буфер char [16]. У него может быть та же проблема, и он имеет содержимое {0, '2', '3', '4', ...} .

0
ответ дан 30 November 2019 в 23:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: