Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Приховування даних в аудіо файлах

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКТА
Факультет:
ЗІ
Кафедра:
Захист інформації

Інформація про роботу

Рік:
2019
Тип роботи:
Лабораторна робота
Предмет:
Методи і засоби стеганографії
Група:
КБСТ
Варіант:
3 13 13

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Кафедра «ЗІ» ЗВІТ до лабораторної роботи №3 з курсу: «Методи і засоби стеганографії» на тему: «ПРИХОВУВАННЯ ДАНИХ В АУДІО ФАЙЛАХ» МЕТА РОБОТИ Ознайомитися із методами приховування інформації в аудіо файлах. ЗАВДАННЯ Створити проект, ввести свою програму, Запустити режим симуляції програми та перевірити правильність її функціонування. У випадку виявлення відхилень в роботі внести потрібні виправлення. ЛІСТИНГ ПРОГРАМИ import wave import struct import sys # Uses LSB hiding to embed a given set of watermark data # into a specified cover audio # Currently only supports WAV files # cover_filepath is the path to a host WAV audio file # watermark is the data to be embedded (can be any type, only the binary representation is used) # watermarked_output_path is the path for the watermarked audio data to be written to def lsb_watermark(cover_filepath, watermark_data, watermarked_output_path): watermark_str = str(watermark_data) watermark = struct.unpack("%dB" % len(watermark_str), watermark_str) watermark_size = len(watermark) watermark_bits = watermark_to_bits((watermark_size,), 32) watermark_bits.extend(watermark_to_bits(watermark)) cover_audio = wave.open(cover_filepath, 'rb') (nchannels, sampwidth, framerate, nframes, comptype, compname) = cover_audio.getparams() frames = cover_audio.readframes (nframes * nchannels) samples = struct.unpack_from ("%dh" % nframes * nchannels, frames) if len(samples) < len(watermark_bits): raise OverflowError("The watermark data provided is too big to fit into the cover audio! Tried to fit %d bits into %d bits of space." % (len(watermark_bits), len(samples))) print "Watermarking %s (%d samples) with %d bits of information." % (cover_filepath, len(samples), len(watermark_bits)) encoded_samples = [] watermark_position = 0 n = 0 for sample in samples: encoded_sample = sample if watermark_position < len(watermark_bits): encode_bit = watermark_bits[watermark_position] if encode_bit == 1: encoded_sample = sample | encode_bit else: encoded_sample = sample if sample & 1 != 0: encoded_sample = sample - 1 watermark_position = watermark_position + 1 encoded_samples.append(encoded_sample) encoded_audio = wave.open(watermarked_output_path, 'wb') encoded_audio.setparams( (nchannels, sampwidth, framerate, nframes, comptype, compname) ) encoded_audio.writeframes(struct.pack("%dh" % len(encoded_samples), *encoded_samples)) def watermark_to_bits(watermark, nbits=8): watermark_bits = [] for byte in watermark: for i in range(0,nbits): watermark_bits.append( (byte & (2 ** i)) >> i ) return watermark_bits def recover_lsb_watermark(watermarked_filepath): # Simply collect the LSB from each sample watermarked_audio = wave.open(watermarked_filepath, 'rb') (nchannels, sampwidth, framerate, nframes, comptype, compname) = watermarked_audio.getparams() frames = watermarked_audio.readframes (nframes * nchannels) samples = struct.unpack_from ("%dh" % nframes * nchannels, frames) # determine how many watermark bytes we should look for watermark_bytes = 0 for (sample,i) in zip(samples[0:32], range(0,32)): watermark_bytes = watermark_bytes + ( (sample & 1) * (2 ** i)) print "Recovering %d bytes of watermark information from %s (%d samples)" % (watermark_bytes, watermarked_filepath, len(samples)) watermark_data = [] for n in range(0, watermark_bytes): watermark_byte_samples = samples[32 + (n * 8) : 32+((n+1) * 8)] watermark_byte = 0 for (sample, i) in zip(watermark_byte_...
Антиботан аватар за замовчуванням

04.06.2019 23:06

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини