Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];

Вниз

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

 
nick_mas ©   (2004-07-24 04:20) [0]

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


 
y-soft ©   (2004-07-24 07:30) [1]

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

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


 
nick_mas ©   (2004-07-24 18:19) [2]

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


 
Fay ©   (2004-07-24 18:34) [3]

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


 
VMcL ©   (2004-07-24 20:04) [4]

>>nick_mas ©  (24.07.04 04:20)

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


 
VMcL ©   (2004-07-24 20:06) [5]

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

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

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


 
y-soft ©   (2004-07-24 20:06) [6]

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

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

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

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


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

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


 
y-soft ©   (2004-07-24 20:16) [8]

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

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

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


 
Anatoly Podgoretsky ©   (2004-07-24 20:26) [9]

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


 
y-soft ©   (2004-07-24 20:33) [10]

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

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

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

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


 
Anatoly Podgoretsky ©   (2004-07-24 20:39) [11]

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


 
y-soft ©   (2004-07-24 20:40) [12]

Продолжение

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

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


 
Anatoly Podgoretsky ©   (2004-07-24 20:42) [13]

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


 
y-soft ©   (2004-07-24 20:46) [14]

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

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


 
Anatoly Podgoretsky ©   (2004-07-24 20:51) [15]

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


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

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

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

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

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

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



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

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

Наверх




Память: 0.49 MB
Время: 0.032 c
1-1090571577
AlexFe
2004-07-23 12:32
2004.08.08
Переход по TEdit - ам с помощью Enter


1-1090426125
AlexR
2004-07-21 20:08
2004.08.08
Как отследить потерю фокуса


3-1089697360
Nero
2004-07-13 09:42
2004.08.08
Создание БД


3-1089586197
Daniil
2004-07-12 02:49
2004.08.08
Многострочный DBGrid


1-1090474367
SkyP
2004-07-22 09:32
2004.08.08
как создать объект по имени класса ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский