Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];




Вниз

И еще раз о хранении пароля 


eSKey   (2002-04-15 17:39) [0]

Спрашивал уже, боюсь меня не поняли.
Надо хранить зашифрованные данные. Но программа должна их расшифровывать для использования (т.е. в память), без ввода пароля простым юзером. Отсюда и вопрос - как прятать/шифровать пароль так, что бы его нельзя было просто прочитать по определенному адресу со стороны? Хэш не подходит, хэш это годится для проверки вводимого пароля.
Как Виндуз хранит свои пароли в пвл-ях ? Ведь имея один .pwl, взломать его хакеру довольно трудно, нужно ему иметь еще кой-чего с реестра? Или винда все-равно хранит какие-то уязвимые данные джля расшифровки?
Помогите, очень надо, не для хака/крака!



Reindeer Moss Eater   (2002-04-15 17:47) [1]

Тебе отвечали, боюсь ты не понял.
Скажи, КТО в твоем случае проверяет правильность пароля (твой код или чужой)?



eSKey   (2002-04-15 18:12) [2]

Чужого кода здесь вообще нет. Да и на правильность проверять пароль зачем? Нужно чтобы расшифровать определенный файл(ы) легко могла моя программа, а любой посторонний через большой геморрой.



Леха_   (2002-04-15 18:16) [3]

Не храни нигде а результат пусть напрямую зависит от правильности пароля(т.е. пароль является ключом)
при этом никаким дебагером пароль выцарапать не получится



Пиноккио   (2002-04-15 22:35) [4]

>>Ведь имея один .pwl, взломать его хакеру довольно трудно, >>нужно ему иметь еще кой-чего с реестра?
Больше ничего не надо, если имя юзера совпадает с именем pwl-файла, то есть для надёжности лучше ещё иметь System.ini, где может быть приблизительно такая строка:
[Password Lists]
PETJA=C:\WINDOWS\VANJA.PWL

По поводу хэширования.
Я использую следующую фунцию, но она не всегда возвращает уникальное значение, то есть если набрать пароль с ошибкой в один символ, то она все равно примет его за правильный :-((

function Hash4(const UsernamePassword: String): Integer;
var
I : Integer;
ID : Byte;
p0, p : PByte;
begin
Result := 0;
p0 := @Result;
for i := 1 to Length(UsernamePassword) do begin
id := ((i-1) mod 4);
p := p0;
inc(p, id);
p^:= p^ or Ord(UserNamePassword[i]);
end;
end;

Может быть, кто может подсказать более надёжную функцию.



mrcat   (2002-04-16 14:01) [5]

SHA-1




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.025 c
1-94376           Vovochka              2002-04-17 15:14  2002.04.29  
Update for Delphi6


14-94547          Иван Шихалев          2002-03-19 21:26  2002.04.29  
to Moderator


1-94454           Decoda                2002-04-15 21:38  2002.04.29  
А можно не изобретать велосипед ?


4-94628           Оля                   2002-02-21 10:22  2002.04.29  
Внимание! Хотелось бы обобщить вопросы по handle за последние несколько дней.


4-94638           alexey1               2002-02-26 23:19  2002.04.29  
Вопрос на использование функции FindWindowEx