Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 05.06.2018
Сообщений: 2

Не работает кириллица в алгоритме стеганографии

05.06.2018, 09:20. Показов 1120. Ответов 2

Студворк — интернет-сервис помощи студентам
Имеется программа по встраиванию текстовой информации в изображение. Проблема в том, что извлекается только английский алфавит, помогите сделать кириллицу
Код для встраивания:
C#
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
 private void buttonEncode_Click(object sender, EventArgs e)
        {
            if (textBoxMessage.Text == String.Empty)
                MessageBox.Show("Введите сообщение");
            else 
            {
                Bitmap img = new Bitmap(textBoxFilePath.Text);
 
                for (int i = 0; i < img.Width; i++)
                {
                    for (int j = 0; j < img.Height; j++)
                    {
                        Color pixel = img.GetPixel(i, j);
 
                        if (i < 1 && j < textBoxMessage.TextLength)
                        {
                            Console.WriteLine("R = [" + i + "][" + j + "] = " + pixel.R);
                            Console.WriteLine("G = [" + i + "][" + j + "] = " + pixel.G);
                            Console.WriteLine("G = [" + i + "][" + j + "] = " + pixel.B);
 
                            char letter = Convert.ToChar(textBoxMessage.Text.Substring(j, 1));
                            int value = Convert.ToInt32(letter);
                            Console.WriteLine("letter : " + letter + " value : " + value);
 
                            img.SetPixel(i, j, Color.FromArgb(pixel.R, pixel.G, value));
                        }
 
                        if (i == img.Width - 1 && j == img.Height - 1)
                        {
                            img.SetPixel(i, j, Color.FromArgb(pixel.R, pixel.G, textBoxMessage.TextLength));
                        }
                    }
                    pictureBox2.Image = img;
                }
Код извлечения сообщения:
C#
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
        private void button3_Click(object sender, EventArgs e)
        {
            if (pictureBox1.Image == null)
                MessageBox.Show("Загрузите контейнер");
 
            else
            {
                Bitmap img = new Bitmap(pictureBox1.Image);
                string message = "";
 
                Color lastpixel = img.GetPixel(img.Width - 1, img.Height - 1);
                int msgLength = lastpixel.B;
 
                for (int i = 0; i < img.Width; i++)
                {
                    for (int j = 0; j < img.Height; j++)
                    {
                        Color pixel = img.GetPixel(i, j);
 
                        if (i < 1 && j < msgLength)
                        {
                            int value = pixel.B;
                            char c = Convert.ToChar(value);
                            string letter = System.Text.Encoding.ASCII.GetString(new byte[] { Convert.ToByte(c) });
 
                            message = message + letter;
                        }
                    }
                }
                richTextBox1.Text = message;
            }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.06.2018, 09:20
Ответы с готовыми решениями:

Не работает кириллица. Или работает, но illegale bute sequence
В общем, столкнулся с такой проблемой. Есть консольное приложение. Не буду вдаваться в подробности, но мне понадобилось выводить русский...

Не работает кириллица
- Здравствуйте любители D! Вопрос абсолютного новичка. Попробовал свое первое приложение на D. Использую компилятор dmd.2.069.1.windows,...

Работает ли Кириллица с классами?
Почему-то всё корректно отображается на русском, кроме параметра, который выходит из класса. main.h: class Person { public: ...

2
 Аватар для Рядовой
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
05.06.2018, 10:08
Dmitriy123456, у вас какой то адов франкенштейн, а не программа для стеганографии. Смесь консоли и форм, замена синего канала на часть сообщения.
C#
1
2
3
4
5
char letter = Convert.ToChar(textBoxMessage.Text.Substring(j, 1));
                            int value = Convert.ToInt32(letter);
                            Console.WriteLine("letter : " + letter + " value : " + value);
 
                            img.SetPixel(i, j, Color.FromArgb(pixel.R, pixel.G, value));
Это явно не классический алгоритм замены младших битов на часть сообщения.
Цитата Сообщение от Dmitriy123456 Посмотреть сообщение
Проблема в том, что извлекается только английский алфавит
ну ты вы же сами указали кодировку
C#
1
System.Text.Encoding.ASCII.GetString
ASCII не поддерживает кириллицу.

Добавлено через 22 минуты
Собственно, это работает, потому что номера латинских символов Юникода совпадают с номерами символов в ASCII, а вот кириллица, с их номерами от 400 не подходит для значения синего канала.
Для кириллицы придется менять алгоритм шифрования, просто смена кодировки не поможет.
0
0 / 0 / 0
Регистрация: 05.06.2018
Сообщений: 2
05.06.2018, 10:32  [ТС]
Цитата Сообщение от Рядовой Посмотреть сообщение
а вот кириллица, с их номерами от 400 не подходит для значения синего канала.
Да, как раз поменяв кодировку появилась данная ошибка, спасибо буду разбираться дальше.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.06.2018, 10:32
Помогаю со студенческими работами здесь

Не работает кириллица в поиске по сайту.
Сделал поиск по сайту, со странички search.html все ищет как положено, вот что у меня прописано: &lt;FORM name=formSear...

Не работает кириллица в редакторе кода
Здравствуйте я хотел бы научится писать на qbasic но у меня проблемы я скачиваю qbasic сайтов но у них нет русский шрифт или еще хуже пишет...

Подсчитать количество вхождений буквы (кириллица) в строку (кириллица)
Суть такая: по требованию программы ввести строку символов (обыкновенный текст, кириллица(!!!)) и посчитать количество вхождений, если...

Кириллица [UTF-8] [локализация] - все равно не работает
В текстовом редакторе поставил UTF-8 и только после этого написал кириллицей сообщение на вывод в форме. Локализацию добавлял в main...

Работа с классами. Не работает Кириллица. Истина рядом
Работаю в Microsoft Visual Studio 2010. Кириллица везде работает, кроме одного момента. Подозреваю на то, что классы не умеют работать...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
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(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru