0 / 0 / 0
Регистрация: 09.09.2014
Сообщений: 21
|
|
1 | |
Стеганография. Методы LSB и DCT03.06.2017, 23:31. Показов 3978. Ответов 11
Необходимо реализовать эти 2 метода. Метод LSB как-то еще получился, не могу только понять как записывать сообщение больше ~30 символов, если при условия записи ( textBox1 . Text . Length * 8 > 255 ), и как реализовать запись русских букв. А с ДКП что-то вообще тяжко даже не понимаю, как его реализовать. Помогите кто чем сможет))
0
|
|
03.06.2017, 23:31 | |
Ответы с готовыми решениями:
11
LSB-шифрование LSB Стеганография Стеганография LSB BMP
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,037
|
|
04.06.2017, 00:36 | 2 |
Пиши постановку задачи полностью.
Например, LSB внутри DCT на ячейках "средних частот" Добавлено через 19 минут Другой метод - LSB на первой ячейке DCT, она (ячейка) еще называется DC и является средним арифметическим.
0
|
0 / 0 / 0
Регистрация: 09.09.2014
Сообщений: 21
|
|||||||||||
04.06.2017, 02:56 [ТС] | 3 | ||||||||||
Что то я не совсем понял.вероятно вы не так поняли под я имел ввиду LSB - метод наименее значащих битов, а DCT- метод дискретно косинусного преобразования.
В LSB не могу понять как правильно сделать условие для внедрения большого числа символов если использовать такое условие
Здесь мои наработки по методу LSB
Добавлено через 2 минуты да и в моем коде если использовать русские буквы программа вылетает тоже не могу понять причину, есть предположение что при переводе текста в биты число получается больше 255(но это не точно)
0
|
Модератор
2982 / 2136 / 451
Регистрация: 26.03.2015
Сообщений: 8,306
|
|
04.06.2017, 04:46 | 4 |
Если бы Вы написали, какая ошибка и где, вероятно, кто-нибудь объяснил Вам причину возникновения ошибки.
В кодировке UTF-8 один символ может занимать от 1 до 4 байт.
0
|
0 / 0 / 0
Регистрация: 09.09.2014
Сообщений: 21
|
|
04.06.2017, 15:07 [ТС] | 5 |
System.ArgumentException: Значение '1091' недопустимо для 'blue'. 'blue' должно быть больше или равно 0 и меньше или равно 255.
в System.Drawing.Color.CheckByte(Int32 value, String name) в System.Drawing.Color.FromArgb(Int32 alpha, Int32 red, Int32 green, Int32 blue) в System.Drawing.Color.FromArgb(Int32 red, Int32 green, Int32 blue) в SimpleSteganography.Form1.buttonEncode_Click(Object sender, EventArgs e) в C:\Users\metech\AppData\Local\Temporary Projects\SimpleSteganography\Form1.cs:строка 53 в System.Windows.Forms.Control.OnClick(EventArgs e) в System.Windows.Forms.Button.OnClick(EventArgs e) в System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) в System.Windows.Forms.Control.WndProc(Message& m) в System.Windows.Forms.ButtonBase.WndProc(Message& m) в System.Windows.Forms.Button.WndProc(Message& m) в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
0
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,037
|
|
04.06.2017, 17:26 | 6 |
Как впихнуть число большее чем 255 в один байт? Да никак! Используй 2, 3, 4 и так далее байт. Например, первый байт сообщения говорит сколько следующих байт отведено под хранение размера сообщения.
Либо сразу брать 2/3/4 байта под размер заранее ограничив максимальный размер сообщения. Ты не можешь использовать коэффициенты DCT для непосредственного хранения данных. Т.е. можешь, но это будет заметно. Чтобы это не было заметно - нужен способ незначительного изменения данных коэффициентов. В данный момент я интересуюсь данным вопросом, и из тематических публикаций пока извлек следующие методы: - LSB на коэффициенты "средних частот" - в низких частотах будут слишком заметно, а высокие отбрасываются при сжатии изображения - LSB на первый коэффициент - дает слишком низкую плотность, да и не такой уж незаметный. - сдвиг значений коэффициентов согласно "алфавиту" из слабо коррелирующих массивов Добавлено через 14 минут К слову, перезапись одного цвета картинки числами из сообщения - это ни разу не LSB. Конвертируй текст UTF8 в массив байт, потом обратно, либо работай с ASCII текстом.
0
|
0 / 0 / 0
Регистрация: 09.09.2014
Сообщений: 21
|
||||||||||||||||
04.06.2017, 22:34 [ТС] | 7 | |||||||||||||||
А что насчет метода ДКП. Я почитал некоторые статьи с форума получил следующий код, но в нем что то не то не могу понять что именно ругается на строку в функции извлечения стего.(Вызвано исключение: "System.InvalidOperationException" в System.Drawing.dll
Дополнительные сведения: Область растрового изображения уже заблокирована.)
ШИФРОВАНИЕ:
0
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,037
|
|
05.06.2017, 08:59 | 8 |
1
|
0 / 0 / 0
Регистрация: 09.09.2014
Сообщений: 21
|
|
05.06.2017, 12:41 [ТС] | 9 |
а поконкретнее можно где именно в извлечении?
0
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,037
|
|
05.06.2017, 15:11 | 10 |
Не знаю, но у тебя в шифровании есть Lock и Unlock, а в извлечении только Lock, добавь разблокировку где-то в конце
1
|
0 / 0 / 0
Регистрация: 09.09.2014
Сообщений: 21
|
|
05.06.2017, 15:51 [ТС] | 11 |
Не помогло((
Добавлено через 28 минут Хотя ошибки больше нет но не выводится результат дешифровки может есть какие то ошибки в алгоритме могли бы посмотреть?
0
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,037
|
|
06.06.2017, 21:14 | 12 |
Попробуй распечатать числа ДКП на стадии записи, и на стадии чтения в извелечении
И сравни их, может этот метод просто не подходит.
0
|
06.06.2017, 21:14 | |
Помогаю со студенческими работами здесь
12
Методы GetPixel\SetPixel BMP и стеганография Стеганография. Методы и программное обеспечение для извлечения информации Domino Configuration Tuner (dct) не пашет LSB (Least Significant Bit) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |