PDA

Просмотр полной версии : [Помогите!] Проблема с паролем


Babls77
25.02.2012, 20:50
Хотел поставить на программу пароль и в саму программу встроить смену пароля ,но столкнулся с проблемой, после ввода старого и нового пароля и нажатия на Button26 пароль не меняется а остаётся старым как и был ! Подскажите в чём проблема.

Работает всё следующим образом - из файла загружается зашифрованный пароль , расшифровывается, далее проверяется введён ли старый пароль правильно ,если правильно то заменяется на новый , шифруется и записывается на файл обратно. Но на практике пароль не меняется. (
procedure TForm1.Button26Click(Sender: TObject);
var
Ini: Tinifile;
List: TStringList;
i,l,j: integer;
a,d,s,b,c: string;
begin
Ini:=TiniFile.Create(ExtractFilePath(paramstr(0))+ 'System.ini');
edt14.Text:= Ini.ReadString('Password','Text',edt14.Text);
a:='ёЁйцукенгшщзхъфывапролджэячсмитьбюЙЦУКЕНГШЩЗХЪ ФЫВАПРОЛДЖЭЯЧСМИТЬБЮQWERTYUIOPASDFGHJKLZXCVBNMqwer tyuiopasdfghjklzxcvbnm0132465987 ';
d:='0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOP ASDFGHJKLZXCVBNMЁёЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ йцукенгшщзхъфывапролджэячсмитьбю ';
s:= edt14.Text;
for l:=1 to Length(s) do
begin
j:=Pos(s[l],a);
b:=b+d[j];
end;
edt14.Text:=b;
Sleep(1000);
if b=edt11.Text then
begin
a:='0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOP ASDFGHJKLZXCVBNMЁёЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ йцукенгшщзхъфывапролджэячсмитьбю';
s:='ёЁйцукенгшщзхъфывапролджэячсмитьбюЙЦУКЕНГШЩЗХЪ ФЫВАПРОЛДЖЭЯЧСМИТЬБЮQWERTYUIOPASDFGHJKLZXCVBNMqwer tyuiopasdfghjklzxcvbnm0132465987';
for l:=1 to Length(b) do
begin
j:=Pos(b[l],a);
c:=c+s[j];
end;
edt14.Text:=c;
Ini:=TiniFile.Create(ExtractFilePath(paramstr(0))+ 'System.ini');
Ini.WriteString('Password','Text',Edt14.Text);
end;

end;
:flood:

VeTaL_UA
26.02.2012, 11:24
А если подумать, что код делает? Код достаёт старый пароль, потом шифрует его, потом обратно дешифрует и пишет обратно в ini...

Babls77
28.02.2012, 22:54
А если подумать, что код делает? Код достаёт старый пароль, потом шифрует его, потом обратно дешифрует и пишет обратно в ini...

Спс я через 1 час дапёр что у меня код делает полную хрень и немного доработал терь всё пашет на ура !/problem
procedure TForm1.Button26Click(Sender: TObject);
var
Ini: Tinifile;
List: TStringList;
i,l,j: integer;
a,d,s,b,c,o: string;
begin
pb1.Position:=0;
Button26.Enabled:=False;
Ini:=TiniFile.Create(ExtractFilePath(paramstr(0))+ 'System.ini');
edt14.Text:= Ini.ReadString('Password','Text',edt14.Text);
a:='ёЁйцукенгшщзхъфывапролджэячсмитьбюЙЦУКЕНГШЩЗХЪ ФЫВАПРОЛДЖЭЯЧСМИТЬБЮQWERTYUIOPASDFGHJKLZXCVBNMqwer tyuiopasdfghjklzxcvbnm0132465987 ';
d:='0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOP ASDFGHJKLZXCVBNMЁёЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ йцукенгшщзхъфывапролджэячсмитьбю ';
s:= edt14.Text;
for l:=1 to Length(s) do
begin
j:=Pos(s[l],a);
b:=b+d[j];
end;
edt14.Text:=b;
pb1.Position:=50;
if b=edt11.Text then
begin
o:= edt12.Text;
a:='0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOP ASDFGHJKLZXCVBNMЁёЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ йцукенгшщзхъфывапролджэячсмитьбю';
s:='ёЁйцукенгшщзхъфывапролджэячсмитьбюЙЦУКЕНГШЩЗХЪ ФЫВАПРОЛДЖЭЯЧСМИТЬБЮQWERTYUIOPASDFGHJKLZXCVBNMqwer tyuiopasdfghjklzxcvbnm0132465987';
for l:=1 to Length(o) do
begin
j:=Pos(o[l],a);
c:=c+s[j];
end;
edt14.Text:=c;
Ini:=TiniFile.Create(ExtractFilePath(paramstr(0))+ 'System.ini');
Ini.WriteString('Password','Text',Edt14.Text);
lbl26.Caption:='Успешно!';
lbl26.Font.Color:= clLime;
end
else
begin
lbl26.Caption:='Неудача!';
lbl26.Font.Color:= clRed ;
ShowMessage('Введите правильной пароль!');
end;
Sleep(250);
pb1.Position:=75;
Sleep(500);
edt11.Clear;
edt12.Clear;
pb1.Position:=100;
Button26.Enabled:=True;
pb1.Position:=0;
end;