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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2009, 19:03   #1
DeToxic
 
Регистрация: 29.03.2009
Сообщений: 5
По умолчанию Шифрование пароля!

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

Последний раз редактировалось DeToxic; 29.03.2009 в 19:07.
DeToxic вне форума Ответить с цитированием
Старый 29.03.2009, 19:06   #2
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

Код:
const
  len = 26;

  {Это символы для выбора столбца таблицы}
  alpha_hor: string = 'abcdefghijklmnopqrstuvwxyz';

  {Здесь будут символы для выбора строки таблицы}
  alpha_ver: string = '';

var
  {Это собственно таблица кодирования}
  table: array[1 .. len, 1 .. len] of char;

{функция получает строку S и возвращает строку,
  полученную из исходной сдвигом на N позиций}
function shift(s: string; n: integer): string;
  begin
    s := copy(s, length(s) - pred(n), n) + s;
    delete(s, length(s) - pred(n), n); shift := s
  end;

var
  i, j, row, col: integer;
  s: string; ch: char;

  key: string;
  is_russian: boolean;
  f_in: file of char; f_out, f_key: text;
begin
  { Заполнение таблицы кодировки }
  for i := 1 to len do begin
    {получаем строку символов для текущей строки таблицы}
    s := shift(alpha_hor, pred(i));
    for j := 1 to len do
      table[i, j] := s[j];
    {
      не забываем первый символ заносить в "хранилище"
      для выбора строк по кодируемой букве
    }
    alpha_ver := alpha_ver + s[1]
  end;

  { связываем логические файлы программы с физическими файлами на диске }

  { файл с фразой для кодирования - открываем для чтения }
  assign(f_in, 'f_00in.txt');
  {$i-} reset(f_in); {$i+}

  { файл для сохранения результата - открываем для записи }
  assign(f_out, 'f_00out.txt');
  {$i-} rewrite(f_out); {$i+}

  {
    файл, содержащий ключевое слово - открываем для чтения,
    считываем слово в строковую переменную и закрываем файл
  }
  assign(f_key, 'f_00key.txt');
  {$i-} reset(f_key); {$i+}
  readln(f_key, key);
  close(f_key);

  { счетчик закодированных символов }
  i := 0;
  {до конца кодируемого файла делаем следующее:}
  while not eof(f_in) do begin
    { читаем очередной символ }
    read(f_in, ch);
    { находим по нему строку таблицы }
    row := pos(ch, alpha_ver);
    {
      эта переменная содержит значение успеха предыдущей операции
      (если True, то символ присутствует в таблице, иначе False)
    }
    is_russian := (row > 0);
    if is_russian then begin
      { Если символ присутствует в таблице, его надо кодировать }

      { увеличиваем счетчик закодированных символов }
      inc(i);

      {
        находим столбец по значению ключевого символа
        (операция mod используется, чтобы исключить выход
        за пределы ключа, т.к. длина ключа обычно меньше
        длины шифруемой последовательности)
      }
      col := pos(key[i mod (length(key))], alpha_hor);
      { и заменяем простой символ на зашифрованный (из таблицы) }
      ch := table[row, col];
    end;
    {
      если символ надо было шифровать, он уже зашифрован,
      если он не может быть зашифрован, он остался без изменений.
      Пишем его в выходной файл
    }
    write(f_out, ch)
  end;

  { И закрываем оба файла: исходный и зашифрованный }
  close(f_out);
  close(f_in)
end.
Код:

function Atbash(toCode: string): string;
var i: integer;
begin
  for i := 1 to length(toCode) do
    toCode[ i ] := Chr(256 - Ord(toCode[ i ]));
  Atbash := toCode;
end;

{ Использование: }
var
  s,s1: string;

begin
readln(s1);
  s := Atbash(s1); { зашифровать }
  writeln(s);
  writeln('s = ', Atbash(s)); { расшифровать }
end.
вступлю в команду разработчиков ПО на Delphi

Последний раз редактировалось maladoy; 29.03.2009 в 19:22.
maladoy вне форума Ответить с цитированием
Старый 29.03.2009, 19:23   #3
DeToxic
 
Регистрация: 29.03.2009
Сообщений: 5
По умолчанию

Цитата:
Сообщение от maladoy Посмотреть сообщение
Код:
const
  len = 26;

  {Это символы для выбора столбца таблицы}
  alpha_hor: string = 'abcdefghijklmnopqrstuvwxyz';

  {Здесь будут символы для выбора строки таблицы}
  alpha_ver: string = '';

var
  {Это собственно таблица кодирования}
  table: array[1 .. len, 1 .. len] of char;

{функция получает строку S и возвращает строку,
  полученную из исходной сдвигом на N позиций}
function shift(s: string; n: integer): string;
  begin
    s := copy(s, length(s) - pred(n), n) + s;
    delete(s, length(s) - pred(n), n); shift := s
  end;

var
  i, j, row, col: integer;
  s: string; ch: char;

  key: string;
  is_russian: boolean;
  f_in: file of char; f_out, f_key: text;
begin
  { Заполнение таблицы кодировки }
  for i := 1 to len do begin
    {получаем строку символов для текущей строки таблицы}
    s := shift(alpha_hor, pred(i));
    for j := 1 to len do
      table[i, j] := s[j];
    {
      не забываем первый символ заносить в "хранилище"
      для выбора строк по кодируемой букве
    }
    alpha_ver := alpha_ver + s[1]
  end;

  { связываем логические файлы программы с физическими файлами на диске }

  { файл с фразой для кодирования - открываем для чтения }
  assign(f_in, 'f_00in.txt');
  {$i-} reset(f_in); {$i+}

  { файл для сохранения результата - открываем для записи }
  assign(f_out, 'f_00out.txt');
  {$i-} rewrite(f_out); {$i+}

  {
    файл, содержащий ключевое слово - открываем для чтения,
    считываем слово в строковую переменную и закрываем файл
  }
  assign(f_key, 'f_00key.txt');
  {$i-} reset(f_key); {$i+}
  readln(f_key, key);
  close(f_key);

  { счетчик закодированных символов }
  i := 0;
  {до конца кодируемого файла делаем следующее:}
  while not eof(f_in) do begin
    { читаем очередной символ }
    read(f_in, ch);
    { находим по нему строку таблицы }
    row := pos(ch, alpha_ver);
    {
      эта переменная содержит значение успеха предыдущей операции
      (если True, то символ присутствует в таблице, иначе False)
    }
    is_russian := (row > 0);
    if is_russian then begin
      { Если символ присутствует в таблице, его надо кодировать }

      { увеличиваем счетчик закодированных символов }
      inc(i);

      {
        находим столбец по значению ключевого символа
        (операция mod используется, чтобы исключить выход
        за пределы ключа, т.к. длина ключа обычно меньше
        длины шифруемой последовательности)
      }
      col := pos(key[i mod (length(key))], alpha_hor);
      { и заменяем простой символ на зашифрованный (из таблицы) }
      ch := table[row, col];
    end;
    {
      если символ надо было шифровать, он уже зашифрован,
      если он не может быть зашифрован, он остался без изменений.
      Пишем его в выходной файл
    }
    write(f_out, ch)
  end;

  { И закрываем оба файла: исходный и зашифрованный }
  close(f_out);
  close(f_in)
end.
Код:

function Atbash(toCode: string): string;
var i: integer;
begin
  for i := 1 to length(toCode) do
    toCode[ i ] := Chr(256 - Ord(toCode[ i ]));
  Atbash := toCode;
end;

{ Использование: }
var
  s,s1: string;

begin
readln(s1);
  s := Atbash(s1); { зашифровать }
  writeln(s);
  writeln('s = ', Atbash(s)); { расшифровать }
end.
А есть работающая прога?
DeToxic вне форума Ответить с цитированием
Старый 29.03.2009, 19:28   #4
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

а
Код:
program {имя программы};
уже никак написать в самом начале проги и запустить? комменты же в обоих кусках кода? в чем трудность собрать?
вступлю в команду разработчиков ПО на Delphi

Последний раз редактировалось maladoy; 29.03.2009 в 19:31.
maladoy вне форума Ответить с цитированием
Старый 29.03.2009, 19:33   #5
DeToxic
 
Регистрация: 29.03.2009
Сообщений: 5
По умолчанию

Мля мне то на делфе надо
DeToxic вне форума Ответить с цитированием
Старый 29.03.2009, 19:41   #6
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

извините телепаты в отпуске!!! а вот если после
Код:
program {имя программы};
ещё и
Код:
{$APPTYPE CONSOLE}
вставить то и в делфях робить буит!! правда консольное приложение получится! а если чуть поискать то вот тут исходник лежит ивот тут гляньте
вступлю в команду разработчиков ПО на Delphi

Последний раз редактировалось maladoy; 29.03.2009 в 19:48.
maladoy вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка пароля Vladya Помощь студентам 1 20.12.2008 21:13
Восстановление пароля Volkogriz Общие вопросы Delphi 1 08.12.2008 18:10
проверка пароля <-=SG=-> Общие вопросы Delphi 4 04.11.2008 19:44
подбор пароля kixaka Помощь студентам 4 19.04.2008 08:45
Шифрование файла с помощью пароля Hallo Обсуждение статей 3 09.02.2007 10:50