Кидаем на форму два Edit'а и две кнопки.
Суть такова... В первый Edit вводится пароль по нажатию кнопки он шифруется и записывается в текстовый файл. Во второй Edit вводится пароль для проверки, по нажатию кнопки он дешифруется и сравнивает текст из второго Edit'а с дешифрованным паролём. Если верно выводит сообщение "Верно", если нет, то соответственно, "Не верно".
В var пропишем переменные
s,shifr:string; //переменные для шифрования, дешифрования
i:integer; //для цикла
f:System.Text; //для текстового документа
Шифрование будет происходит так:
В первой кнопке пишем:
s:=Edit1.Text; //заносим пароль в переменную
for i:=1 to length(s) do //length(s) определяет длину строки "s"
shifr:=shifr + chr(Ord(s[i])+7); //шифрование
assignfile(f, '1.txt'); // привязка названия файла к файловой переменной
Rewrite(f); //создание или пересоздание файла
Write(f, shifr); //запись переменной shifr в файл
CloseFile(f);
edit1.Clear;
Дешифрование происходит как шифрование только в обратную сторону :)
Во второй кнопке пишем:
assignfile(f, '1.txt'); //
Reset(f);
read(f, shifr); //чтение переменной из файла
s:='';
for i:=1 to length(shifr) do //дешифрование
s:=s + chr(Ord(shifr[i])-7);
if edit2.Text=s then
showmessage('Верно')
else
showmessage('Не верно');
end;
P.S. если хотите чтобы при вводе пароля в edit'е выводились звёздочки, то в его свойствах в поле PasswordChar поставьте * или любой другой символ.
Суть такова... В первый Edit вводится пароль по нажатию кнопки он шифруется и записывается в текстовый файл. Во второй Edit вводится пароль для проверки, по нажатию кнопки он дешифруется и сравнивает текст из второго Edit'а с дешифрованным паролём. Если верно выводит сообщение "Верно", если нет, то соответственно, "Не верно".
В var пропишем переменные
s,shifr:string; //переменные для шифрования, дешифрования
i:integer; //для цикла
f:System.Text; //для текстового документа
Шифрование будет происходит так:
- цикл посимвольно при помощи функции Ord будет преобразовывать символы в их числовые эквиваленты (например: W=87, ?=63 и т.д.)
- будет производится сдвиг этих эквивалентов, в моём примере сдвиг равен 7
- при помощи функции Chr, числовые эквиваленты со сдвигом будут преобразовываться в соответствующие им символы
- сохранение в файл
В первой кнопке пишем:
s:=Edit1.Text; //заносим пароль в переменную
for i:=1 to length(s) do //length(s) определяет длину строки "s"
shifr:=shifr + chr(Ord(s[i])+7); //шифрование
assignfile(f, '1.txt'); // привязка названия файла к файловой переменной
Rewrite(f); //создание или пересоздание файла
Write(f, shifr); //запись переменной shifr в файл
CloseFile(f);
edit1.Clear;
Дешифрование происходит как шифрование только в обратную сторону :)
Во второй кнопке пишем:
assignfile(f, '1.txt'); //
Reset(f);
read(f, shifr); //чтение переменной из файла
s:='';
for i:=1 to length(shifr) do //дешифрование
s:=s + chr(Ord(shifr[i])-7);
if edit2.Text=s then
showmessage('Верно')
else
showmessage('Не верно');
end;
P.S. если хотите чтобы при вводе пароля в edit'е выводились звёздочки, то в его свойствах в поле PasswordChar поставьте * или любой другой символ.
Комментариев нет:
Отправить комментарий