Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.16;
Скачать: CL | DM;

Вниз

Пароли и *.ini   Найти похожие ветки 

 
FBI Agent ©   (2006-03-31 21:30) [0]

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


 
Rial ©   (2006-03-31 21:41) [1]

Проще всего для начала зашихровать пароль с помощью операции XOR с использованием достаточно длинной строки и переменной точкой входа.



procedure XorData(Const Data:Pointer;Const DataSize:Integer;Const XorString:String);
Var ptData:ptVoidArray;
   I,J,SL,SN,N:Integer;
begin
SL:=Length(XorString);
If (SL<=0)then Exit;
ptData:=Data;
SN:=DataSize div SL;
For I:=0 to SN-1 do
 For J:=0 to SL-1 do begin
  N:=I*SL+J;
  ptData^[N]:=ptData^[N] xor Ord(XorString[J+1]);
  end;
SN:=DataSize mod SL;
For I:=1 to SN do begin
 N:=DataSize-SN+I-1;
 ptData^[N]:=ptData^[N] xor Ord(XorString[I]);
end;
end;



При чтении выполняешь повторно вызов процедуры - и все тип топ.

A xor B xor B=A.


 
Рамиль ©   (2006-03-31 21:43) [2]

md5


 
tesseract ©   (2006-03-31 21:43) [3]

самый лёгкий - XOR(нужной длины).
посложнее и надёжнее -  например MD5.  
Хранишь не пароль а его хэш. при вводе пароля создаёшь по нему хэш и сравниваешь с хранимым.  Один из самых нормальных методов. Т.к пароль не храниться в чистом виде.


 
FBI Agent ©   (2006-04-01 14:09) [4]

Дело в том, что XOR легко ломается, а вот с MD5 мне идея понравилась?
Никто не делал подобного?


 
Anatoly Podgoretsky ©   (2006-04-01 15:20) [5]

А зачем у тебя вообще пароли хранятся?


 
FBI Agent ©   (2006-04-01 17:09) [6]

А что программа может воспринимать пароль установленный пользователем, без его сохранения?


 
Anatoly Podgoretsky ©   (2006-04-01 17:35) [7]

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


 
tesseract ©   (2006-04-01 19:26) [8]


> Может и большинство программ пароли не хранят, что бы не
> было возможности его украсть.


Они использую эмпирически-предсказательный блок "e-Шамбала (rev /dev/random)" для определения имеет ли пользователь доступ к программе или нет.

см [3]



Страницы: 1 вся ветка

Текущий архив: 2006.04.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.045 c
8-1131485570
Fed
2005-11-09 00:32
2006.04.16
Как организовать поток с графикой?


15-1142347995
Ученик чародея
2006-03-14 17:53
2006.04.16
MS создала новый вирус... называется SubVirt


2-1144170980
dimak-2k
2006-04-04 21:16
2006.04.16
Перевод String to Hex?


4-1138030365
Volf_555
2006-01-23 18:32
2006.04.16
Как получить ТЕКСТ окна, найденного при помощь GetWindowText?


1-1142333840
DelphiLexx
2006-03-14 13:57
2006.04.16
Растягивание TListBox