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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2009, 21:24   #1
s2dentishe
Пользователь
 
Регистрация: 13.11.2009
Сообщений: 70
По умолчанию шифровка и дешифровка текста паролем

добрый вечер! подскажите пожалуйста! есть такая функция
function kodirovka (text, parol_v: String; napr_kod: Boolean): String;
var
i, schet,vrem_p: integer;
d: shortInt;
begin
if napr_kod then d:=-1 else d:=1;
schet:=1;
vrem_p:=1;
for i:=1 to Length (text) do begin
if schet>length(parol_v) then schet:=1;
vrem_p:=(ord (text[i]) +d*ord (parol_v[schet]));
if vrem_p>255 then text[i]:= chr(vrem_p-255)
else if vrem_p<1 then text[i]:= chr(255+vrem_p)
else text[i]:= chr(vrem_p);
schet:=schet+1;
end;
result:=text;
end;

она должна шифровать или дешифровать текст паролем, то есть берет код первого символа пароля и и суммирует с кодом символа текста. и так далее, если символы пароля заканчиваются, берется первый символ пароля и так до конечного символа текста.
первый параметр - текст из текстового файла
второй параметр - пароль
третий параметр - выбор шифровки или дешифровки текста

проблема в том что зашифрованный текст расшифровывается частично, в чем здесь дело, подскажите пожалуйста.
s2dentishe вне форума Ответить с цитированием
Старый 20.12.2009, 22:02   #2
Stepler
Форумчанин
 
Аватар для Stepler
 
Регистрация: 03.02.2008
Сообщений: 213
По умолчанию

Запускай в режиме отладки и пошагово смотри на каком шаге записивается некорректный результат, после чего делай выводы и исправляй код...
Пишу программы на заказ, контакты под аватаром!
Отзывы тут
Stepler вне форума Ответить с цитированием
Старый 20.12.2009, 23:03   #3
Анатоль
Пользователь
 
Регистрация: 17.12.2009
Сообщений: 74
По умолчанию

vrem_p:=(ord (text[i]) +d*ord (parol_v[schet]));
не совсем понятна эта строчка. Откуда умножение на d?
И кстати, тебе везде надо увеличивать счётчик, а ты увеличиваешь только если 1<vrem_p <255. Исправь должно зароботать.
Анатоль вне форума Ответить с цитированием
Старый 21.12.2009, 09:41   #4
s2dentishe
Пользователь
 
Регистрация: 13.11.2009
Сообщений: 70
По умолчанию

значения d мы получаем по нажатию на кнопку, оно зависит от того будем мы шифровать или дешифровать текст, то есть слаживать или отнимать номер кодировки символа текста и номер кодировки символа пароля
s2dentishe вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шифровка текста, ошибки (С/С++) svetlanka Помощь студентам 2 23.03.2009 10:25
Дешифровка zvyagin1 Фриланс 3 02.12.2008 20:40
Шифровка текста С++ deathsurgut Общие вопросы C/C++ 3 01.10.2007 18:58
Шифровка паролем-HELLP DKbelRoma Безопасность, Шифрование 3 13.09.2007 16:20