Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > разделение прав доступа


Автор: Zigmyndshtein 27.2.2008, 13:08
подскажите плиз  как лучше организовать разделение пра доступа в проге. где и как хранить пароли и логины и какие использовать алгоритмы шифрования

Автор: xvr 27.2.2008, 13:21
Цитата(Zigmyndshtein @ 27.2.2008,  13:08)
подскажите плиз  как лучше организовать разделение пра доступа в проге. где и как хранить пароли и логины и какие использовать алгоритмы шифрования

Права лучше разделять, пароли хранить на компьютере, а алгоритмы шифрования использовать стойкие  smile Если хочешь получить конкретный ответ - задай конкретный вопрос, в частности неплохо было бы знать, что за прога: сетевая или на одном компе, сколько предполагается пользователей, можно ли совместить пользователя Windows и этой проги, что и как нужно шифровать?

Автор: Zigmyndshtein 27.2.2008, 13:27
прога сетевая, пользователей может до 50 одновременно, а вопрос о шифровании относился к логинам и паролям. как их лучше хранить? шифровать самому или есть стандартные проги и билиотеке для таких целей

Автор: vikaz 29.2.2008, 11:44
Я вот сейчас тоже пишу сетевую прогу и меня так же посещала мысль о разделении доступа. Если прога у тебя сетевая, то и хранить данные (user + password) надо в доступном месте, локально это будет не верно! Самое лучшее хранить в базе. Так при изменении пароля и юзера с одного места, это изменение будет доступно и из другого места! А насчет сокрытия данных в базе тут море вариантов от простых до сложных. Простые это написать свою маленькую функцию шифрования и все. Если программа не сильно распространенная, то никто ломать твою функцию не будет и в тоже время все скрыто от простого просмотра!

Автор: xvr 29.2.2008, 12:50
Цитата(Zigmyndshtein @ 27.2.2008,  13:27)
прога сетевая, пользователей может до 50 одновременно,

Если есть необходимость обеспечить децентрализацию, такую как:
  •  Работа проги на нескольких серверах одновременно (или попеременно)
  •  Удаленная настройка проги (особенно это актуально если много экземпляров ее работает в сети)
то можно использовать ActiveDirectory (см в MSDN) или свой сервер с базой данных (если он уже есть и используется в проге)
Если же нет - то любое локальное хранилище (вплоть до отдельного файла)
Цитата

а вопрос о шифровании относился к логинам и паролям. как их лучше хранить? 
Если использовать ActiveDirectory, то там уже все есть. Если делать что-то свое, то обычно пароли как есть не хранят - используют одностороннии криптографически стойкие хэш функции (такие как MD5 или SHA1). Через них пропускают имя пользователя, его пароль и иногда еще какое-нибудь случайное число. Полученный хэш (вместе со случайным числом, если его использовали) запоминают.
Такой метод позволяет предотвратить восстановление пароля по данным, хранимым программой, но не предотвращает попытки угадать пароль перебором (например по словарю). Что бы защититься и от этого используют дополнительно шифрование полученного хэша (DES/3DES/RSA/IDEA/и т.д.) или вместо обычного хэша используют MAC хэши (например на основе DES/3DES)

Цитата

шифровать самому или есть стандартные проги и билиотеке для таких целей
Навалом  smile Во первых в Windows есть CryptoAPI (см MSDN), во вторых есть такая библиотека как http://www.theargon.com/achilles/cryptography/RSA/rsaeuro-1.04s.zip и http://www.theargon.com/achilles/cryptography/RSA/rsaeuro-1.04d.zip, в третьих в Internet'е есть навалом сорцов по отдельно взятым алгоритмам - Google в зубы и вперед  smile 

Автор: Zigmyndshtein 29.2.2008, 12:59
спасибо за краткую консультацию smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)