![]() |
|
Модераторы: bsa |
![]()
|
|
| tayler |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 24.1.2009 Репутация: нет Всего: нет |
Значит так....у меня задание написать простой шифратор....я себе придумал простой алгоритм:
1)функция читает 1 знак с файла 2)функция "sprawdz_czy_nalezy" проверяет есть ли он в таблице alfabet[] а)если есть return 1 б)если нет return 0 3)если sprawdz_czy_nalezy = 0, функция переходит к след знаку 4)если sprawdz_czy_nalezy = 1, ето описывать не буду бо там вроде все ок=) проблема в том что у меня не коректно работает если "sprawdz_czy_nalezy" не так подаю туда аргументы!?
P.S. компилятор devC++ Это сообщение отредактировал(а) tayler - 24.1.2009, 17:29 |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
Некорректно это как ? q у Вас же символ, зачем указатель на него передовать ? a зачем простите ";" после else Добавлено через 2 минуты и 51 секунду внутренние кавычки тут излишни, они лишь затрудняют чтение кода.. |
|||
|
||||
| tayler |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 24.1.2009 Репутация: нет Всего: нет |
спс за указания......значет так по очереди,
по моему некоректно работает потомучто тасколько мне извесно то в документах *.тхт кроме обычных знаков(букв,знаков табуляци, знака нового рядка,пробела итп.) есть еще кучя мусора (как знаки возвращения каретки принтера ,или чтото в етом типе) вот собственно ета функция (sprawdz_czy_nalezy) создана для того чтоб проверить если знака нету в alfabet[] пропускай его(тоисть не записывай в output_file)... дело в том что знаки которых нет в етой таблице он заменяет буквой q сюда "if(*q != *(alf+j))" даю указатель бо если передаю туда "с" то мне выбивает ерроры main.c syntax error before "char" main.c In function `sprawdz_czy_nalezy': main.c number of arguments doesn't match prototype plik.h prototype declaration main.c `c' undeclared (first use in this function) main.c `alf' undeclared (first use in this function) а кавычки уберу спс за подсказку.....кстати там нельзя вообше както так указать alfabet[]={a-z , A-z , 0-9 ,} чтото было такое только вот не помню как ето записывалось ( вот а вообше проблема в том что он типа шифрует только он не замечяет знаков новой линии, табуляции итп.. мож мне будет лутше чемто другим читать знаки из файла!? помогите както стабилизировать код, ато вчера всю ночь писал, а на пн надо сдать =) Это сообщение отредактировал(а) tayler - 24.1.2009, 21:02 |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
вот написал функцию, ловите и проверяйте
Это сообщение отредактировал(а) mes - 24.1.2009, 22:41 |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
мне кажется составлять алфавит вручную не очень удобно, проще написать какой нибудь генератор.
к тому же желательно иметь возможность проверить алфавит |
|||
|
||||
| tayler |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 24.1.2009 Репутация: нет Всего: нет |
Ребят написал таки его
если кому надо пишыте в ЛС или сюда выложу =) всем спасибо за помощь =) Это сообщение отредактировал(а) tayler - 25.1.2009, 11:45 |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
ну тогда просто напишите функцию, показывающую сколько вхождений на каждый символ имеется
для управляющих должно быть 0, а для остальных не больше одного. Добавлено @ 22:22 ловите функцию подсчета, осталось добавить ее вызов в цикл, и вывести отчет.
Это сообщение отредактировал(а) mes - 24.1.2009, 22:44 |
|||
|
||||
| cutwater |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 592 Регистрация: 24.6.2008 Репутация: 2 Всего: 10 |
2 tayler:
Я насколько понимаю, Вы не знакомы с шифрованием до этого "проекта" были. Исходя из алгоритма вашего, ваш шифр является обыкновенной подстановкой, взломать его намного легче не простым перебором, а методом частотного анализа, с очень большой вероятностью и минимумом затрат. Извините, но говорить о защищенности такого алгоритма не имеет смысла, ибо похожие алгоритмы применялись с десяток-два лет назад. При нынишних мощностях и развитии криптографии применяются на n порядков более сложные алгоритмы шифрования. |
|||
|
||||
| tayler |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 24.1.2009 Репутация: нет Всего: нет |
2 cutwater:
Нет не знаком=))) я чуть поправил алгоритм теперь он стал чуть сложнее покрайней мере мне так кажетса=))) выгледит ето приблизительно так: 1) Беру чар 2) приравнимаю к таблице алфавит 3) Номер чара в таблице алфавит шифрую спомощю шифра Цезара F(n)=(n+i)mod93 где "n" ето порядковый номер в таблице, "i" ето порядковый номер в файле 4) Потом то что получита я использую как порядковый номер для таблицы маски(так как я ее называю) =) очень надеюсь что каждий второй розшифровать етого не сможет, хотя какая разница =)) мне б проект сдать, он там и говорл чтоб ничего особенного не делать =) Это сообщение отредактировал(а) tayler - 25.1.2009, 11:55 |
|||
|
||||
| cutwater |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 592 Регистрация: 24.6.2008 Репутация: 2 Всего: 10 |
Я думаю если необходимо просто сдать "проект", без его практического применения, то все равно как он шифрует.
А если интересна современная криптография то советую почитать хотябы того же Брюса Шнайера "Прикладная криптография" |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |