Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подскажите, как лучше закодировать информацию?


nick_mas ©   (2004-07-24 04:20:00) 

Подскажите, пожалуйста, как лучше закодировать информацию? Собираюсь хранить пароли в БД, но так, чтобы они не просматривались через Data Desktop или ему подобные. Как это лучше сделать?


y-soft   (2004-07-24 21:00:00) [1]

Anatoly Podgoretsky ©   (24.07.04 20:51) [15]

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

Судя по твоему последнему посту, ты почему-то не вникаешь в высказанную мысль :(

Речь не о том, что для одинаковых хешируемых последовательностей будут якобы получаться разные хеши (естественно одинаковые), а о том, что для одинаковых паролей разных пользователейхеши будут разные. И не более того.

Понятно, что подразумевается при авторизации использование не только пароля, но и известного программе уникального значения для конкретного пользователя...


Anatoly Podgoretsky   (2004-07-24 20:51:00) [2]

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


y-soft   (2004-07-24 20:46:00) [3]

Anatoly Podgoretsky ©   (24.07.04 20:42) [13]

Если известен пароль пользователя А и его хеш, то без дополнительной привязки достаточно перезаписать этот хеш в поле пароля любого другого пользователя и спокойно заходить под его именем. А с дополнительной привязкой - облом :)


Anatoly Podgoretsky   (2004-07-24 20:42:00) [4]

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


y-soft   (2004-07-24 20:40:00) [5]

Продолжение

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

И никаких проблем при идентификации не возникнет


Anatoly Podgoretsky   (2004-07-24 20:39:00) [6]

Про алгоритмы не надо, давай про хэш, почему в следующий раз для строковой последовательности 'Anatoly Podgoretsky+Анатолий' должен получиться другой?


y-soft   (2004-07-24 20:33:00) [7]

>Anatoly Podgoretsky ©   (24.07.04 20:26) [9]

Все гораздо проще. Например, пользователю Anatoly Podgoretsky соответствует пароль "Анатолий". Записывается в базу хеш от строки 'Anatoly Podgoretsky+Анатолий'.

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

Обычно алгоритм делают сложнее...


Anatoly Podgoretsky   (2004-07-24 20:26:00) [8]

Интересно если одинаковым паролям не будет соответвовать одинаковый хеш, то как же с такой системой работать? По генератору случайных чисел определять верность :-)


y-soft   (2004-07-24 20:16:00) [9]

>nick_mas ©   (24.07.04 18:19) [2]

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

И хешируйте на просто пароль, а его комбинацию с каким-нибудь уникальным для пользователя идентификатором, чтобы одинаковым паролям не соотвествовали одинаковые хеши :)


Anatoly Podgoretsky   (2004-07-24 20:10:00) [10]

Database Desktop показывает все поля кроме мемо
И как тебе уже сказали не храни пароли зараза, по крайней мере мои, я против.


VMcL   (2004-07-24 20:06:00) [11]

>> Fay ©  (24.07.04 18:34) [3]

> Ты знаешь, что такое хеш...

Для любителей язвить цитирую: "Т.е. что за хеши...?"


y-soft   (2004-07-24 20:06:00) [12]

>nick_mas ©   (24.07.04 18:19) [2]

Т.е. что за хеши...? Можно чуть по подробнее.

Хеш - это вычисляемое из пароля по какому-то известному алгоритму значение, из которого восстановить каким-либо путем снова пароль невозможно. И подобрать очень трудно...

Таких алгоритмов существует множество: DESX, MD4, MD5, MD6, RipeMD160, Tiger и т.д.


VMcL   (2004-07-24 20:04:00) [13]

>> nick_mas ©  (24.07.04 04:20)

MD4, MD5, например. Есть и другие.


Fay   (2004-07-24 18:34:00) [14]

Подробнее уже некуда. Ты знаешь, что такое хеш, пароль и оператор сравнения?


nick_mas   (2004-07-24 18:19:00) [15]

Т.е. что за хеши...? Можно чуть по подробнее.


y-soft   (2004-07-24 07:30:00) [16]

Храните не пароли, а их хеши.

При использовании хешируйте пароли по тому же алгоритму и сравнивайте со значениями в базе


Наверх

Титульная страница Поиск, карта сайта Написать письмо