Читать курсовая по информационному обеспечению, программированию: "Сокрытие персональных данных в последний незначимый бит растрового изображения формата BMP" Страница 11

назад (Назад)скачать (Cкачать работу)

Функция "чтения" служит для ознакомления с работой. Разметка, таблицы и картинки документа могут отображаться неверно или не в полном объёме!

self.number_of_chars_in_text = 0 # начальное значение длины зашифрованного текста

self.original_text = '' # переменная, хранящая скрытый текст

def read_header(self): # функция, считывающая каждый байт по # Читаем заголовок, текст в нем не закодирован

for i in range(0, HEADER_SIZE): # Цикл, перебирающий все байты = self.fh.read(1) # присвоение байтов в переменную

def get_char(self): # объявление функции, получающая последний незначимых бит из текста 8 байт и ассемблирует байты из него

new_byte = '' # объявление переменной

for bit in range(0, 8): # объявление цикла

byte = self.fh.read(1) # чтение значения последнего незначимого бита

new_byte += str(ord(byte) & 0x01) # присвоение значение последнего незначимого бита

n = int(new_byte, 2) # приведение к типу integer

desteg_char = binascii.unhexlify('%x' % n) # конвертация бинарного вида в ASCII

return desteg_char # возврат зашифрованного текста

def get_text_size(self): # функция, получающая длину скрытого текста

curr_ch = self.get_char() # присвоение текущего символа

s_sz = '' # объявление переменной

while curr_ch != DELIMITER: # цикл, перебирающий значения, пока не будет найден разделитель

s_sz += curr_ch # присвоение текущего символа

curr_ch = self.get_char() # присвоение текущего символа

if (s_sz != ''): # Условие, если переменная не пустая

self.number_of_chars_in_text = int(s_sz) # тогда привести s_sz к типу integer и присвоить значение read_stega_text(self): # функция, читающая весь скрытый текс в изображении

decoded_chars = 0; # объявление переменнойdecoded_chars < self.number_of_chars_in_text: # объявление цикла.original_text += self.get_char() # присвоение переменной скрытого текста

decoded_chars += 1 # инкремент

def close_file(self): # функция, закрывающая картинку

self.fh.close(); # Закрытие картинки

def get_text(self): # функция, выполняющая извлечение скрытого текста

self.read_header() # вызов функции

self.get_text_size() # вызов функции

self.read_stega_text() # вызов функции.close_file() # вызов функцииself.original_text # возвращает оригинальный текст main():# Объявление аргументов командной стоки

destag_insta = LSBDecrypter() # присвоение переменной результат выполнения класса

text = destag_insta.get_text() # присвоение переменной text значения оригинального текста

print "Successfully decoded, text is: {}".format(text) # при успешном выполнении вывод надписи, сообщающая корректное завершение.

if __name__ == '__main__': # конструктор, определяющий начало работы программы

main() # вызов main


Похожие работы

 
Тема: Автоматизированный перенос данных из формата Microsoft Excel 97-2003 и Excel 2007 в базу данных MySQL
Предмет/Тип: Отсутствует (Контрольная работа)
 
Тема: Технология озвучивания и монтаж звукового ряда рекламного ролика "СПбУКиТ" в условиях формата изображения Betacam SP с использованием возможностей ПК (Nuendo)
Предмет/Тип: Культурология (Курсовая работа (т))
 
Тема: Технология озвучивания и монтаж звукового ряда рекламного ролика в условиях формата изображения 35 мм (традиционный вариант) с применением персонального компьютера (программа Nuendo)
Предмет/Тип: Информатика, ВТ, телекоммуникации (Диплом)
 
Тема: Разработка формата хранения данных программ и решение задач
Предмет/Тип: Информатика, ВТ, телекоммуникации (Практическое задание)
 
Тема: Программа конвертер баз данных из файлов dbf в файл формата XML
Предмет/Тип: Отсутствует (Диплом)

Интересная статья: Основы написания курсовой работы