Шифрование и кодирование - это отдельные шаги.
Например, предположим, что мы хотим отправить сообщение ROT13 is not a serious encryption algorithm
на другое устройство. Мы можем зашифровать его, используя шифр ROT13, даже если это несерьезный алгоритм шифрования. Это даст нам зашифрованное сообщение EBG13 vf abg n frevbhf rapelcgvba nytbevguz
, если предположить, что этот сайт правильно применяет ROT13.
Чтобы передать это зашифрованное сообщение на другое устройство, мы можем использовать любое количество возможных схем кодирования и путей связи. Кажется, вы хотите использовать звуковые сигналы. ToneGenerator
имеет много тонов. Предположим, вы хотите придерживаться классических тональных тонов, представленных константами TONE_DTMF_*
на ToneGenerator
. Их 16.
Итак, вам нужно будет преобразовать ваше зашифрованное сообщение в представление base-16, подобно тому, как люди конвертируют байтовые массивы в представление base-64. Результатом этого будет byte[]
значений в диапазоне от 0 до 15. Затем вы сопоставите их с 16 тонами (например, TONE_DTMF_0
для значения 0). Отправка сообщения будет включать в себя последовательное воспроизведение этих тонов, возможно, с их заключением в какие-то тоны «начало сообщения» и «конец сообщения».
Получение сообщения будет связано с использованием AudioRecord
или чего-то еще, чтобы услышать тоны, декодировать тоны в byte[]
из 0-15 значений, отменить преобразование base-16, чтобы получить зашифрованное сообщение, а затем использовать алгоритм дешифрования, чтобы получить оригинал сообщение.
Chirp и аналогичные решения существуют для передачи аудиоданных, а это сообщение в блоге описывает решение на основе JavaScript для реализации такого рода системы. Ни один из них, AFAIK, не интегрирует шифрование, но это вопрос того, какие данные вы просите эти системы отправлять.
person
CommonsWare
schedule
30.08.2015