Форум по программированию Delphi Sources

 



Вернуться   Форум по программированию Delphi Sources > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 08.12.2009, 16:57
Йогурт Йогурт вне форума
Начинающий
 
Регистрация: 20.11.2009
Сообщения: 109
Репутация: 5
По умолчанию

Поэтому это не Бред! А вполне нормальный продуманный рабочий код!
Ответить с цитированием
  #17  
Старый 08.12.2009, 17:07
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Храни имя и пароль в реестре в зашифрованном виде...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #18  
Старый 08.12.2009, 17:12
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Ты же итак Access используешь, а добавить табличку с логином и паролем. простое дело, а даст тебе это следующие приемущества, во первых хранение пароля и логина пользователей прямо в БД, изменение пароля из программы и/или из базы данных, ты можешь сделать несколько баз для нескольких магазинов, и использовать во всех случаях только одну программу, в свою очередь ты можешь установить пароль на БД, а значит, пароли пользователей будут защищены. И это тебе сегодня известно, что пользователей только 2, но завтра могут попросить третьего, и вот тогда тебе придется переписывать все, это конечно, если у тебя коммерческий проект. Я вот с клиентами давно работаю, и уже убедился, что лучше стараться предугадывать будущие пожелания клиентов и изначально подтачивать код, для будущих доработок. Да и потом, воторой раз ты этот код врятли сможешь использовать, мое мнение, любой программист должен стремиться к разработке универсального кода, того, который впоследствии не придется переписывать.
Ответить с цитированием
  #19  
Старый 08.12.2009, 17:13
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Цитата:
Сообщение от Йогурт
Поэтому это не Бред! А вполне нормальный продуманный рабочий код!

Полнейший бред, за такое людей увольняют с рабочих мест. Купи себе пару книг по программированию, удачи.)
Ответить с цитированием
  #20  
Старый 08.12.2009, 17:47
Йогурт Йогурт вне форума
Начинающий
 
Регистрация: 20.11.2009
Сообщения: 109
Репутация: 5
По умолчанию

Цитата:
Сообщение от NIch
Храни имя и пароль в реестре в зашифрованном виде...
Расскажи пожалуйста как мне поступить? Если можно код тоже!
Ответить с цитированием
  #21  
Старый 08.12.2009, 17:51
Йогурт Йогурт вне форума
Начинающий
 
Регистрация: 20.11.2009
Сообщения: 109
Репутация: 5
По умолчанию

Цитата:
Сообщение от Asinkrit
Ты же итак Access используешь, а добавить табличку с логином и паролем. простое дело, а даст тебе это следующие приемущества, во первых хранение пароля и логина пользователей прямо в БД, изменение пароля из программы и/или из базы данных, ты можешь сделать несколько баз для нескольких магазинов, и использовать во всех случаях только одну программу, в свою очередь ты можешь установить пароль на БД, а значит, пароли пользователей будут защищены. И это тебе сегодня известно, что пользователей только 2, но завтра могут попросить третьего, и вот тогда тебе придется переписывать все, это конечно, если у тебя коммерческий проект. Я вот с клиентами давно работаю, и уже убедился, что лучше стараться предугадывать будущие пожелания клиентов и изначально подтачивать код, для будущих доработок. Да и потом, воторой раз ты этот код врятли сможешь использовать, мое мнение, любой программист должен стремиться к разработке универсального кода, того, который впоследствии не придется переписывать.
Пфф, я наверно как-то не так объясняю проблему. Или ты меня не хочешь услышать и твердишь своё! Повторяю, через БД никак не получиться так как мне нужна всего лишь одна БД! Подключить ее указав путь к БД делается через настройку в MainMenu самой программы! Если я сделаю по твоему совету то авторизация не загрузит мой проект! Надеюсь ты меня понял.
Ответить с цитированием
  #22  
Старый 08.12.2009, 17:56
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Простите вмешаюсь в спор...
2 Йогурт...
Проанализировал твой код...и соглашусь с Asinkrit...
"Несколько неоптимизированный код"...мягко говоря)))...пусть даже и рабочий по твоему...
У тебя куча проверок, но все как-то не до конца...
Если ошибся только паролем, то всплывет сообщение, а если ошибся логином то просто очистка...
Есть дублирующие проверки...
ИМХО код дорабатывать и дорабатывать...
Приду с работы домой кину вариант в реестром...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #23  
Старый 08.12.2009, 18:00
Йогурт Йогурт вне форума
Начинающий
 
Регистрация: 20.11.2009
Сообщения: 109
Репутация: 5
По умолчанию

Цитата:
Сообщение от NIch
Простите вмешаюсь в спор...
2 Йогурт...
Проанализировал твой код...и соглашусь с Asinkrit...
"Несколько неоптимизированный код"...мягко говоря)))...пусть даже и рабочий по твоему...
У тебя куча проверок, но все как-то не до конца...
Если ошибся только паролем, то всплывет сообщение, а если ошибся логином то просто очистка...
Есть дублирующие проверки...
ИМХО код дорабатывать и дорабатывать...
Приду с работы домой кину вариант в реестром...
Согласен! Но все таки, его вариант с БД мне не подходит! Спора нет, это правильно. Но с моим вариантом это не правильно!
Ответить с цитированием
  #24  
Старый 08.12.2009, 18:06
Йогурт Йогурт вне форума
Начинающий
 
Регистрация: 20.11.2009
Сообщения: 109
Репутация: 5
По умолчанию

Мне надо чтобы в разделе компонента MainMenu на кнопке "Система паролей" можно было сменить пароль для авторизации + чтобы сменившийся пороль и с действующим логином записывался в текстовый документ с расшерением .ini или любым другим! От меня такое вот требуют =)

И пожалуйста, если возможно отпишите код этих действий! Спасибо!
Ответить с цитированием
  #25  
Старый 09.12.2009, 11:42
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

запись в файл:

Код:
var myFile:textfile;

AssignFile(myFile, 'Test.txt');
ReWrite(myFile);

WriteLn(myFile, login+':'+pass); //login и pass это логин и пароль

CloseFile(myFile);

чтение из файла:

Код:
AssignFile(myFile, 'Test.txt');

  Reset(myFile);

  while not Eof(myFile) do
  begin
    ReadLn(myFile, text);
    if text=login1+':'+pass1 then GOOD  //login1 и pass1 логин который ввел пользователь
                                    else BAD!!
  end;
  CloseFile(myFile);

Но лично я бы это не использовал не надежно это как то. Еще очень советую записывать в файл именно хеши а не просто логин и пароль, например можешь юзать md5 в интернете много примером реализации этой функции(сам не вывешиваю,так как он довольно объемный)
Ответить с цитированием
  #26  
Старый 09.12.2009, 12:31
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Ну md5 это круто, есть проще алгоритмы шифрования, например простой XOR остановит любого не связанного напрямую со взломом программ...
http://www.delphisources.ru/pages/fa...rithm_xor.html
Я например использовал такую реализацию...
Код:
//XOR алгоритм шифрования
function TProgramm.Coding(Text : String):String;
var
  key, longkey: string;
  i: integer;
  toto : char;
begin
  longkey := '';
  key := 'ADSF';//Вместо такого ключа используй логин
  for i := 0 to (length(text) div length(key)) do
    longkey := longkey + key;
  for i := 1 to length(text) do
  begin
    toto := chr((ord(text[i]) xor ord(longkey[i]))); // XOR алгоритм
    result := result + toto;
  end;
end;
Алгоритм реализации...
Считываешь строку из файла(реестра)...
Прогоняешь через XOR...
Сравниваешь результат с эталоном...
Работаешь...
При изменении пароля(логина)...
Прогоняешь новую строку через XOR...
Сохраняешь в файле(реестре)...
Таким образом в файле(реестре) хранится не сам пароль, его зашифрованный вариант...
Повторюсь, это самая простая реализация...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...

Последний раз редактировалось NIch, 09.12.2009 в 12:42.
Ответить с цитированием
  #27  
Старый 09.12.2009, 16:44
Йогурт Йогурт вне форума
Начинающий
 
Регистрация: 20.11.2009
Сообщения: 109
Репутация: 5
По умолчанию

Всем спасибо! Но я ничего не понял =)
Ответить с цитированием
  #28  
Старый 09.12.2009, 16:47
Йогурт Йогурт вне форума
Начинающий
 
Регистрация: 20.11.2009
Сообщения: 109
Репутация: 5
По умолчанию

Цитата:
Сообщение от NIch
Ну md5 это круто, есть проще алгоритмы шифрования, например простой XOR остановит любого не связанного напрямую со взломом программ...
http://www.delphisources.ru/pages/fa...rithm_xor.html
Я например использовал такую реализацию...
Код:
//XOR алгоритм шифрования
function TProgramm.Coding(Text : String):String;
var
  key, longkey: string;
  i: integer;
  toto : char;
begin
  longkey := '';
  key := 'ADSF';//Вместо такого ключа используй логин
  for i := 0 to (length(text) div length(key)) do
    longkey := longkey + key;
  for i := 1 to length(text) do
  begin
    toto := chr((ord(text[i]) xor ord(longkey[i]))); // XOR алгоритм
    result := result + toto;
  end;
end;
Алгоритм реализации...
Считываешь строку из файла(реестра)...
Прогоняешь через XOR...
Сравниваешь результат с эталоном...
Работаешь...
При изменении пароля(логина)...
Прогоняешь новую строку через XOR...
Сохраняешь в файле(реестре)...
Таким образом в файле(реестре) хранится не сам пароль, его зашифрованный вариант...
Повторюсь, это самая простая реализация...
Ничего не пойму, куда это писать? На форму авторизации? А что писать чтобы изменить пороль?
Ответить с цитированием
  #29  
Старый 09.12.2009, 17:10
Йогурт Йогурт вне форума
Начинающий
 
Регистрация: 20.11.2009
Сообщения: 109
Репутация: 5
По умолчанию

Смотрите, на моей форме авторизации есть Edit1, Edit2, Button! Так вот, в первом вводим Логин, во втором Пороль на Баттоне выполняется действие! На MainMenu есть кнопочка Система поролей на которой будут распологатся аналогичные компоненты, на этой кнопки должно быть действие смены пороля нужного нам логина! Как это все сделать? Опишите пожалуйста, опишите код, куда его записать! Напоминаю, надо сделать чтобы было два пользователя Администратор и Продавец, и нужна именно их смена пароля.

Помогите бедному студенту пожалуйста =)
Ответить с цитированием
  #30  
Старый 09.12.2009, 19:58
Йогурт Йогурт вне форума
Начинающий
 
Регистрация: 20.11.2009
Сообщения: 109
Репутация: 5
По умолчанию

Проблема решена самостоятельно!

PHP код:
//Чтение из файла

label m;
var 
f:textfile;
l1,l2:string;
begin
assignfile
(f,'Paroli.txt');
{
$I-}
reset(f);
{
$I+}
readln(f,l1);
if 
l1<>'/1' then begin Application.MessageBox('Нарушена целостность пароля','error'); goto mend;
readln(f,l1);
readln(f,l2);
if 
l2<>'/2' then begin Application.MessageBox('Нарушена целостность пароля','error'); goto mend;
readln(f,l2);
closefile(f);
If (
Edit1.Text='Администратор') and (Edit2.Text=l1then
begin

end
else
If (
Edit1.Text='Продавец') and (Edit2.Text=l2then
begin

end
;
m

Записать в файл

PHP код:
label m;
var 
f:textfile;
p1,p12,p2,p22,p3,p32:string;
begin
p1
:=Edit1.Text;
p12:=Edit2.Text;
p2:=Edit3.Text;
p22:=Edit4.Text;
if (
p1<>p12) or (p2<>p22then  begin  Application.MessageBox('Пароли не совпадают','error'); goto mend;
assignfile(f,'Paroli.txt');
{
$I-}
rewrite(f);
{
$I+}

writeln(f,'/1');
writeln(f,p1);

writeln(f,'/2');
writeln(f,p2);
closefile(f);
ShowMessage('Пароли изменены');
close;
m
Вот и все, все дела!

P.S для людей которые озадачились такой же проблемой!
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:29.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2019

ВКонтакте   Facebook   Twitter