2013-07-01 2 views
-1

Я должен зашифровать mp3-файл с помощью AES 256. Когда я использовал шифрование на основе Java, это было довольно медленно; он занимал около 35 секунд для 6 МБ mp3-файла. Затем мне предложили использовать JNI и реализовать шифрование в C.как скомпилировать OpenSSL в Android для шифрования AES

Теперь я скомпилировал OpenSSL и выполнил «мир HEllo» с использованием JNI. Я мало что знаю о JNI. Может ли кто-нибудь посоветовать мне, как использовать скомпилированный OpenSSL в Android, и как реализовать шифрование AES 256 в C и вызвать его с Java?

+0

Я хотел бы предположить, что Java ребята реализовали их шифрование уже в C/C++ (и, возможно, даже детали в сборке). Поэтому я предлагаю вам сначала проверить это. Кроме того, могут быть вещи, которые вы могли бы оптимизировать в своем Java-коде. Итог: хорошо посмотрите перед заменой библиотек Java. –

+0

Да, я уже говорил, что они довольно медленные. Если вы знаете какую-либо такую ​​реализацию, которая быстра, пожалуйста, дайте мне знать –

+0

Примечание: вы могли бы отредактировать [ваш предыдущий вопрос по этой теме] (http://stackoverflow.com/questions/17357673/mp3-audio-encryption-decryption- slow-on-android) вместо того, чтобы начинать новый. Вопросы могут оторваться «в ожидании», если они будут улучшены. –

ответ

2
  1. Напишите простую функцию C, которая делает то, что вам нужно, используя API OpenSSL.
  2. Удостоверьтесь, что он работает
  3. Создайте класс Java с собственным методом, который имеет необходимые входные и выходные данные. Возможно, byte[] для обоих.
  4. Используйте javap, чтобы создать файл заголовка из класса в 3.
  5. Реализовать функции в файле заголовка и вызвать 1. выполнить фактическую работу.
  6. Читайте на JNI для подробностей :)