Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2

Найти ключ, закодированный в звуке

11.12.2019, 21:03. Показов 1955. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем, вопрос не то, чтобы именно по жаве, но всё же. В общем, есть некоторый звуковой файл (.wav) и в нём закодирован некий ключ. Надо каким-то образом етот самый ключ вытащить. Я подумал, что там может использоваться стеганография, мол каждые n бит одного байта ключа кодируются в n младших бит одного байта звука. Ну, я пытался собирать таким образом 1 младший бит, два, четыре, собирал в разном порядке (цеплял каждые новые n бит сзади / спереди), но на выходе всегда каша. Щас попробую собирать старшие, но чёт мне кажется, что смысла в этом нет, ибо в любом случае получится достаточно объёмный текст. Ну и собсна, товарищи, есть ли у вас какие-нибудь идеи относительно того, как достать этот банный ключ?

Достаю биты этим кодом. Понимаю, что достаточно костыльно, но я имею очень мало опыта работы с бинарниками
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
        byte[] target = Files.readAllBytes(Paths.get("/home/okno/Downloads/noise.wav"));
        
        byte[] bytes = new byte[target.length];
        
        int pos = 0;
        while (pos < target.length) {
            if (target[pos] == 0x64) {
                byte[] chunk = new byte[4];
 
                for (int i = 0; i < 4 && pos < target.length; i++) {
                    chunk[i] = target[pos];
                    pos++;
                }
 
                if (!"data".equalsIgnoreCase(new String(chunk))) {
                    continue;
                }
 
                for (int i = 0; i < 4 && pos < target.length; i++, pos++);
 
                break;
            }
 
            pos++;
        }
        
        int temp = 0;
        int count = 0;
        int i = 0;
        while (pos < target.length) {
            temp = (temp << 2) | (target[pos++] & ~(~1 << 1));
            count++;
            
            if (count == 4) {
                // if (temp == 0) break;
                
                bytes[i++] = (byte) temp;
                temp = 0;
                count = 0;
            }
        }
        
        byte[] out = new byte[i];
        System.arraycopy(bytes, 0, out, 0, i);
        
        System.out.println(new String(out, "UTF-8"));
Ну и да, примерно 44 первых байта эт заголовок wav файла, поэтому я его просто пропускаю
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.12.2019, 21:03
Ответы с готовыми решениями:

RSA, как найти закрытый ключ имея открытый ключ, p и q
Прив, задание такое - Как найти закрытый ключ d, если мы знаем открытый ключ e, который равен 5, и простые числа p и q, которые равны 2 и...

Крестик на звуке
добрый день. звука нет. драйвера менял. наушники и колонки рабочие. случилось после попытки вставить наушники и проверить рабочий ли...

Пропадает звуке из за мазилы
Здравствуйте, у меня такая проблема: если в мазиле смотреть ролики слушать музыку звук может пропасть и пока не перезапустишь мазилу не...

4
 Аватар для sdasdaw
406 / 278 / 93
Регистрация: 14.03.2017
Сообщений: 777
11.12.2019, 23:52
Лучший ответ Сообщение было отмечено Gungala как решение

Решение

Для решения этой задачи, используется азбука морзе, с помощью нее берется буковка ключа.
1
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
12.12.2019, 00:36
может тупо строка в файле записана?
0
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
12.12.2019, 00:48  [ТС]
xoraxax, неа, проверял

sdasdaw, хм, интересно. Попробую завтра
0
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
13.12.2019, 20:16  [ТС]
Чёрт, всё оказалось куда проще, чем я представлял. Странно, что так мало людей решили. Ключ выкладывать не буду, ибо уже было написано, как его найти
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.12.2019, 20:16
Помогаю со студенческими работами здесь

Появились трески в звуке
Трески слышны на любых наушниках, особенно выражены, при смене громкости и включении - выключении треков. Аудиокарта встроенная в ноутбук...

Сабвуфер 2.1 отключается на максимальном звуке
Короче такая проблема, взял с рук акустику: http://www.nix.ru/autocatalog/speakers_microlab/Microlab_FC330_2x16W_Subwoofer24W_54569.html ...

Артефакты в звуке (треск, щелчки)
Добрый день! У меня наблюдается следующая проблема - при прослушивании музыки,работе в секвенсоре(Cubase,Fl Studio),частенько проскакивает...

G z370 hd3 наводки на звуке
Добрый день. Решил обновить комп. Купил новую мать gigabyte z370 hd3 + i3, память и блок на 800w В итоге получил звуки от внутренностей...

Лаги при громком звуке
Сабж. Сама по себе, проблема очень странная. При прослушивании музыки (например с ВК, в клиентких плеерах такого вроде нету) на большой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru