![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
GriGor1Z |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 8.8.2006 Репутация: нет Всего: нет |
Вообщем, надо написать программу шифрования и дешифровки текстового файла по аглоритму Цезаря ( сдвиг буквы на несколько позиций.
Вообщем планирую делать так. Хочу взять текстовый файл, брать из него по символу. Получить код-ANSII этого символа, потом сдвинуть этот символ на 5 (ключ) и потом снова по коду востановить полученый символ и записывать в другой файл. Я не могу вспомнить 2 функции в С. (лето...., просто вылетело из головы) Функции получения кода симола и востановления симола по его коду. Программировать буду на TC3 (пока нет Студии еще ![]() И еще, есть ли какие-то ошибки в моих действия по шифрованию? |
|||
|
||||
Mayk |
|
||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Нету таких в си. В си символ суть код символа и наоборот.
-------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||
|
|||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
GriGor1Z,
Кстати, имхо, можно применить циклический "реальный"(битовый) сдвиг, на n-битов, заданных ключем. Стоийкость практически такая же как у выше написанного алгоритма, только вот жать можно не только текстовые файлы и выглядет лучше. PS Ключ имеет реальное ограничение 0 до 7. |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
и этим способом можно -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
pablo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 12.2.2005 Где: Вильнюс, Литва Репутация: 4 Всего: 6 |
О какой компресии идёт собственно речь ? Ведь колличество данных не меняется. Насколько я помню Rot 3 (шифр цезаря) ничего не сжимает. Это же простой шифр с перестановкой. Код на Python,
на С++ перевести думаю не составит проблем. -------------------- Первый блин всегда похож на сферу, иногда бывает и куб. |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
может человек описАлся естественно речь идет не о сжатии -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
GriGor1Z,
Нужно понять, что такое указатель и базовые принципы работы с ним.
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
вот с использованием STL
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
Хмм... а если исходный символ будет 255-ым в таблице ASCII ? Переполнение... и не однозначное воспроизведение его потом при дешифровке. Естественно...
Здесь подразумевается криптостойкость, которая не может быть свойством алгоритмов сжатия информации... Извините. Добавлено @ 14:25 Кстати... сложение двух целых программно медленне, чем битовый сдвиг. |
|||
|
||||
bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
Ничего не будет ![]() Для char'а соответсвует: х + 5 == х - 5. И если вместо Х подставить 255, то будет соответсвие 255 + 5 == 255 - 5 |
|||
|
||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
0xFF, 0FFh. ИМХО в бинарниках точно имеется. Да это, то понятно, просто я сначало было подумал о битовом переполнении, но потом понял, что оно ни коем образом не мешает при обратной дешифровке. |
|||
|
||||
Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
В кои-8р это "ъ" кстати. А в cp1251 это "я". А так как ascii-8 8 битная, то 255-ого символа в ней не может не существовать. Это сообщение отредактировал(а) Mayk - 9.8.2006, 15:53 -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
GriGor1Z |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 8.8.2006 Репутация: нет Всего: нет |
Есть еще пару вопросов.
С помощью этого алгоритма можно шифровать графические файлы? Если да, то как. Там же как я пониаю нет символов, там пиксели. как быть с ними? |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
любой файл - последовательность байт на диске любой байт - число от 0 до 255 соответственно для шифровки открываешь файл в бинарном виде читаешь по байту и прибавляешь к нему ключ циклически (т е если байт равер 254, а ключ 10, то новым значением станет 8) -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
GriGor1Z |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 8.8.2006 Репутация: нет Всего: нет |
Сделал программу почти, есть попросо как праспознать символы конца строки, перехода на новыю строку и т.д
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |