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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.09.2011, 18:21   #1
Delas
 
Регистрация: 13.05.2011
Сообщений: 6
По умолчанию Запись/чтение логинов и паролей из файла.

Хочу сделать чтоб из ini файла считывалось-записывалось логин и пароль.
Есть несколько логинов и паролей,...1.2.3.4.5
Вначале думал в такой секции их записывать....может кто то предложит по лучше вариант...так как пока тока думаю как сделать это.вот мой вариант, как я это себе представляю.
Код:
[Accounts]
Acc1=login1:pass1
Acc2=login2:pass2
Acc3=login3:pass3
Acc4=login4:pass4
Если сам ini поддерживает ":" символы.
Хотелось бы хранить пароли в зашифрованном виде...но там сложнее и у меня нету знаний как шифровать и расшифровывать.Еще как вариант не использовать ini а просто создавать файл с любый расширением или без него, и в нем хранить пароль и логин...Но пока не знаю как чтение и запись туда делать.
При запуска программы должно определятся есть ли запись под номером1
если нету тогда предлагать создать ее с появлением окна где вводится логин и пароль.....как бы эту часть не сложно сделать....Какие будут советы по поводу как правильно реализовать это???
1. В ini файле без шифровки.
2. В ini файле но уже хоть какая то защита к примеру (набор символов,часто такое видел где то открываешь конфиг файл а там набор символов)
3. Вариант на Xml....????
4. Ваш вариант какой будет лучше...
Delas вне форума Ответить с цитированием
Старый 13.09.2011, 18:34   #2
Lesha
Форумчанин
 
Аватар для Lesha
 
Регистрация: 30.01.2009
Сообщений: 418
По умолчанию

Цитата:
Хотелось бы хранить пароли в зашифрованном виде
можно хранить пароли в виде хешей. (md5 sha)
Lesha вне форума Ответить с цитированием
Старый 13.09.2011, 18:38   #3
Delas
 
Регистрация: 13.05.2011
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Lesha Посмотреть сообщение
можно хранить пароли в виде хешей. (md5 sha)
А можно по подробней как это сделать??? я в этом полный ноль что касается хешей.
Как захешировать и потом при считывании программа его сама расхеширует
Delas вне форума Ответить с цитированием
Старый 13.09.2011, 19:22   #4
Lesha
Форумчанин
 
Аватар для Lesha
 
Регистрация: 30.01.2009
Сообщений: 418
По умолчанию

вот исходник программы которая рассчитывает md5 хеш

http://jqbook.narod.ru/works/md5Delphi.zip

с хешами работать очень просто

береш свой ini , записываеш туда хеш пароля, только не просто md5('пароль');
а с сольи md5('пароль'+'соль');

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

сама соль в файл ini не записывается, а хранится в недрах программы, что позволяет создать более высокую защиту паролям если ктото их сопрет,

также допускается двойное хеширование с принением соли, то есть

md5('соль'+md5('пароль'+'соль')+'со ль');

короче тут уже начинается фантазия и можно придумать различные вариации хеширования, вплоть до 5-кратного хеширования. Однако пыл надо все же поумерить ибо вычиления хеша тратят приличное количество процессорного времени. (не измерял но около 1/100-1/1000 секунд)

в прорамме проверка введеного пароля с хешем состоит в сравнении следующего условия

if md5(ВведенныйПароль+'соль')=хеш then вход выполнен

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

Последний раз редактировалось Lesha; 13.09.2011 в 19:29.
Lesha вне форума Ответить с цитированием
Старый 14.09.2011, 08:12   #5
Стелс
Я с вами :-)
Форумчанин
 
Аватар для Стелс
 
Регистрация: 19.10.2008
Сообщений: 110
По умолчанию

Например так
Код:
 type
  TMember = record
    Name : string[50];
    Password : string[30];
    Posts : LongInt;
  end;

var
Form1:TForm;
Members: array[0..5] of TMember;

procedure Code(Form1:string);
    var
    Ret: AnsiString; //Тип данных  – ANSI строка(массив символов)
    I: Integer; // Тип данные – целые числа
    begin
    //копируем то что находиться в поле ввода во вспомогательную строку
    Ret := AutrzForm.EditPass.Text;
    for I :=1 to Length(Ret)   do //Читаем строку до конца
    Ret[I] := Chr(Ord(Ret[I])-Length(Ret));
    AutrzForm.EditPass.Text:=Ret;
//----------------------------------------------------------------------------
procedure Assign_File;
var
  F : file of TMember;
  i: integer;
  begin
 AssignFile(F,'members.md');
  Rewrite(F);
  try
    for i:= 0 to 5 do
      write (F, Members[i]);
  finally
    CloseFile(F);
  end;
   end;

procedure TForm1.FormCreate(Sender: TObject);
var
F_:integer;
begin
  Members[F_].Posts:=Members[F_].Posts+1;
  Members[F_].name:=EditName.Text;
  Members[F_].password:=EditPass.Text;
 end; 
//Шифрование пароля
 code(EditPass.Text);
  Members[F_].password:=EditPass.Text;
 Assign_File;

  end;
    end;

________
Неужели трудно понять, что код ОБЯЗАТЕЛЬНО нужно оформлять по правилам?!!
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)

Не забывайте об этом!

Модератор.
٩(๏̯͡๏)۶٩(๏̯͡๏)۶٩(๏̯͡๏)۶ моя любимая книга - Окна for чайников . Кодить начал ещё вчера . ......кто там кодит ? Да не кто не кодит это я куякнулся

Последний раз редактировалось Serge_Bliznykov; 14.09.2011 в 13:19.
Стелс вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
чтение и запись файла VaskaKostolom Паскаль, Turbo Pascal, PascalABC.NET 5 13.09.2011 20:59
Чтение из файла в запись THX35 Фриланс 8 19.03.2010 22:41
Запись и чтение из файла МаксMorfey Общие вопросы по Java, Java SE, Kotlin 5 10.06.2009 11:39
Запись/чтение из файла (С++) alexov Общие вопросы C/C++ 15 18.01.2009 17:35