Название: Нужна помощь Отправлено: vladislav4k от Июля 09, 2012, 00:19 Здравствуйте, сразу начну: создал приложение где есть 2 поля ввода(логин и пароль) и 2 кнопки(вход, регистрация), когда жмем регистрация, выскакивает окошко в котором вводим имя, логин, пароль, после ввода жмем кнопку "Зарегистрироваться". Имя, хеш логина и хеш пароля сохраняются в тхт файле в директории с программой. При вводе логина и пароля (в основном окне), которые были указаны при регистрации, програма хеширует их и сравнивает с хешами в файле, если подхотят - пишет что удачно.
Но проблема в том, что любой может создать файл, поместить туда хеши(которые сгенерировал в нете) и войти в программу. Куда сохранять эти файлы чтоб нельзя было из вне создать еще один. Возможно регистр, или что то другое. Или возможно подскажете другую систему рега - вход на локалке. Буду очень благодарен. Название: Re: Нужна помощь Отправлено: Bepec от Июля 09, 2012, 06:47 Кхм. Мб проще шифровать свой файлик, а? :)
PS идея о "хеше в тхт" это верх безалаберности :D Название: Re: Нужна помощь Отправлено: sidsukana от Июля 09, 2012, 06:57 Как бы если речь идет регистрации, сессиях и тд. То тут по умолчанию должен существовать сервер, соединенный с базой данных и общающийся с клиентом по сокету.
Название: Re: Нужна помощь Отправлено: Serr500 от Июля 09, 2012, 07:53 Можно прятать в файловых потоках NTFS. Мало кто догадается. Да и как их редактировать простой юзер не допрёт. Недостаток - будет работать только на NTFS. Но лучше, конечно, шифровать. А чтобы хэш нельзя было тупо вычислить, используйте "солёный". Соль прячьте в код бинарника.
Название: Re: Нужна помощь Отправлено: vladislav4k от Июля 09, 2012, 10:09 Кхм. Мб проще шифровать свой файлик, а? :) Можно по подробней о шифрование файлов в qt?PS идея о "хеше в тхт" это верх безалаберности :D Можно прятать в файловых потоках NTFS. Мало кто догадается. Да и как их редактировать простой юзер не допрёт. Недостаток - будет работать только на NTFS. Но лучше, конечно, шифровать. А чтобы хэш нельзя было тупо вычислить, используйте "солёный". Соль прячьте в код бинарника. Просьба объяснить как для начинающего, буду благодаренНазвание: Re: Нужна помощь Отправлено: Bepec от Июля 09, 2012, 10:14 Шифрование в qt такое же как и шифрование в С++. Погугли - библиотек и алгоритмов сотни.
Название: Re: Нужна помощь Отправлено: Serr500 от Июля 09, 2012, 10:40 Просьба объяснить как для начинающего, буду благодарен Да там всё очевидно. Файловые потоки NTFS: http://hex.pp.ua/using-alternate-data-streams.php (http://hex.pp.ua/using-alternate-data-streams.php). Если кратко, то вместо Filename.ext используется Filename.ext:Streamname. Не проверял, жрёт ли такие имена класс QFile, но в любом случае собственная реализация даже на основе WinAPI будет элементарной. Нужно знать всего лишь четыре функции - CreateFile, ReadFile(Ex), WriteFile(Ex), CloseHandle. "Солёный хэш" еще проще. Вместо хэша пароля Password (например, md5) вычисляется хэш строки Salt + Password, Password + Salt или ещё что посложнее типа md5(md5(Salt) + md5(Password)). Подробнее - http://www.xakep.ru/post/40336/ (http://www.xakep.ru/post/40336/). Если соль неизвестна, злоумышленник не сможет подсунуть в файл паролей свой хэш. Название: Re: Нужна помощь Отправлено: _OLEGator_ от Июля 09, 2012, 11:42 Создавать не просто хеш логина и пароля, а привязывать их к компу (жд, материнка и т.п.), написав свою функцию генерации строки и при входе заново ее генерировать и сравнивать с уже имеющейся.
Название: Re: Нужна помощь Отправлено: vladislav4k от Июля 09, 2012, 18:19 Спасибо за полезные советы
|