![]() |
|
|
|
|
#1
|
|||
|
|||
|
Проблема следующая.
Есть форма регистрации пользователей , которая создаёт и записывает в БД этих пользователей, пароль шифруется процедурой Код:
CodeString(DBEdit1.Text, true Всё прекрасно создается и пишется. Теперь использую процедуру для сравнения логина и пароля в БД с введёнными на форме для активации Код:
ADODataSet1.First;
for I := 0 to ADODataSet1.RecordCount -1 do //Обработка данных Логина и Пароля пользователя.
begin
LogPass[i]:= ADODataSet1.FieldValues ['Name']+' '+ADODataSet1.FieldValues ['pass'];
ADODataSet1.Next;
Inc(Counts);
end;
//CodeString(DBEdit1.Text, false);
ResultLogPass:= Trim(DBComboBox1.Text)+' '+Trim(DBEdit1.Text);
for H := 0 to Counts do //Цикл проверки .
begin
if ResultLogPass = LogPass[H] then
begin
Form8.ShowModal;
end
Else
Label3.Caption:='Не верный логин или пароль';
end;Понимаю , что теперь зашифрованный пароль, нужно расшифровать процедурой Код:
CodeString(DBEdit1.Text, false); Код:
ResultLogPass:= Trim(DBComboBox1.Text)+' '+Trim(DBEdit1.Text); Спасибо |
|
#2
|
|||
|
|||
|
Сам отвечу.
Клеил процедуру не туда Код:
LogPass[i]:= ADODataSet1.FieldValues ['Name']+' '+CodeString(ADODataSet1.FieldValues ['passw'],false); Теперь порядок |
|
#3
|
|||
|
|||
|
А в принципе это не правильно.
Хранить пароли не надо, даже зашифрованные. Надо считать от них хеш и хранить его. Ну и сравнивать тоже хеши. |
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
starcon (06.03.2016)
| ||
|
#4
|
|||
|
|||
|
Защита от дурака.
Для меня и это уже фантастика. |
|
#5
|
|||
|
|||
|
Какая фантастика??? Найти либу, которая считает, например, md5 (кстати, вроде, в Indy такая есть) и ее использовать?
|
|
#6
|
|||
|
|||
|
Цитата:
Кому надо искать эту либу ?. Моя программа исключительно для очень узкого круга людей , которым не до разного там взлома!!!! Последний раз редактировалось starcon, 08.03.2016 в 20:47. |