Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2011, 21:23   #1
Bernard
 
Регистрация: 02.12.2010
Сообщений: 4
Восклицание С++. Шифрование.

Здравствуйте уважаемые программисты! Прошу помощи в создании программы, которая шифрует и дешифрует исходный текст методом Вижинера с символьным ключом. Я ещё не очень силен в программировании, поэтому пришёл сюда. В теории хочу сделать так:
1.Перевести исходный текст по символу в числа, которые соответствуют порядковому номеру этого символа в алфавите.
2.Создать ключевую последовательность и её так же перевести по символу в числа.
3. (1пункт+ 2пункт)%26 (работаю с английским алфавитом)
4. Полученную последовательность перевести в символы.
Это только шифратор..с дешифратором, думаю, получится разобраться самому если сделать шифратор. С пробелами и знаками препинания вообще никак не соображу что сделать.. Нужно всё это выполнить в Borland C++ 3.1
Заранее спасибо!
P.S. Для тех кто любит постить "ЮЗАй ПоиСК!!!!!" Поиск я юзал и тем похожих применительно к С++ я не нашёл! Да, есть темы к Паскалю и Дэлфи,но я эти языки изучал ещё в школе и не достаточно долго, чтобы всё это перевести в С++.
Bernard вне форума Ответить с цитированием
Старый 30.05.2011, 01:25   #2
Bernard
 
Регистрация: 02.12.2010
Сообщений: 4
По умолчанию

в общем, шифратор я сделал, только он правильно шифрует, если введено 1 слово,подскажите хотя бы как убрать пробелы,запомнить его индекс и вставить его после зашифровки в текст?
Bernard вне форума Ответить с цитированием
Старый 30.05.2011, 13:25   #3
Bernard
 
Регистрация: 02.12.2010
Сообщений: 4
По умолчанию

ну кто-нибудь помогите ПОЖАЛУЙСТА!
вот код того что сделал:
Код:
#include<iostream.h>
#include<string.h>
#include<conio.h>
#include<stdio.h>
int main()
{
int kst,ksk,p1,p2,i,j,tn[100],pn[100],sn[100];
char text[100],posl[100],shifr[100],key[10];
cin.get(text,100);cin>>key;
static char alf[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
//--------------------0---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
kst=strlen(text);ksk=strlen(key);
//формирование ключевой последовательности
p1=kst/ksk;p2=kst%ksk;
for(i=0;i<p1;i++)
strcat(posl,key);
strncat(posl,key,p2);
//----------------------------------------------------
//запись в числа ключевой последовательности и введенного текста
for(i=0;i<kst;i++){
 for(j=0;j<26;j++){
 if(text[i]==alf[j])
 tn[i]=j;}}
for(i=0;i<kst;i++){
 for(j=0;j<26;j++){
 if(posl[i]==alf[j])
 pn[i]=j;}}
//----------------------------------------------------
//получение зашифрованного текста
for(i=0;i<kst;i++){
sn[i]=(pn[i]+tn[i])%26;}
for(i=0;i<kst;i++){
 for(j=0;j<26;j++){
 if(sn[i]==j)
 shifr[i]=alf[j];}}
for(i=0;i<kst;i++){
cout<<shifr[i];}
return 0;
}
Bernard вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шифрование sweeach Компоненты Delphi 3 03.08.2010 02:01
Шифрование buenosaire Помощь студентам 1 15.06.2010 21:54
ШИФРОВАНИЕ fobass Работа с сетью в Delphi 4 14.06.2010 20:32
Шифрование risc Общие вопросы Delphi 1 25.02.2010 21:48
шифрование Рахимжан Помощь студентам 5 29.11.2009 22:33