Форум: "Основная";
Текущий архив: 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
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c